From 0619da5f8aedec727d00c365d83202e33d327eca Mon Sep 17 00:00:00 2001
From: Marcel Dreier <marcelqq7@gmail.com>
Date: Fri, 10 Jun 2022 14:41:59 +0200
Subject: [PATCH] scrolls and facts for the new level

---
 .../FrameIT/frameworld/$Angle$Sum.omdoc.xz    | Bin 1936 -> 1940 bytes
 .../$Default$Situation$Space.omdoc.xz         | Bin 604 -> 756 bytes
 .../frameworld/$Frameworld$Meta.omdoc.xz      | Bin 716 -> 620 bytes
 .../frameworld/$Meta$Annotations.omdoc.xz     | Bin 876 -> 876 bytes
 .../FrameIT/frameworld/$Midpoint.omdoc.xz     | Bin 1684 -> 1680 bytes
 .../FrameIT/frameworld/$Opposite$Len.omdoc.xz | Bin 2152 -> 2172 bytes
 .../FrameIT/frameworld/$Pythagoras.omdoc.xz   | Bin 1900 -> 1948 bytes
 .../frameworld/$Supplementary$Angles.omdoc.xz | Bin 2260 -> 2260 bytes
 .../frameworld/$Triangle$Problem.omdoc.xz     | Bin 644 -> 644 bytes
 .../$Triangle$Problem_$Angle$At$A.omdoc.xz    | Bin 1280 -> 1276 bytes
 .../$Triangle$Problem_$Angle$At$B.omdoc.xz    | Bin 1140 -> 1140 bytes
 ...riangle$Problem_$Right$Angle$At$C.omdoc.xz | Bin 1260 -> 1196 bytes
 .../mmt-omdoc/DefaultSituationSpace.mmt.err   |   2 -
 errors/mmt-omdoc/MetaTheories.mmt.err         |   2 -
 errors/mmt-omdoc/Scrolls/MiscScrolls.mmt.err  |   2 -
 .../Scrolls/SupplementaryAngles.mmt.err       |   2 -
 .../mmt-omdoc/Scrolls/TriangleScrolls.mmt.err |   2 -
 narration/DefaultSituationSpace.omdoc         |   2 +-
 narration/MetaTheories.omdoc                  |   2 +-
 narration/Scrolls/MiscScrolls.omdoc           |   2 +-
 narration/Scrolls/SupplementaryAngles.omdoc   |   4 +-
 narration/Scrolls/TriangleScrolls.omdoc       |   4 +-
 relational/MetaTheories.rel                   |   8 +
 relational/Scrolls/TriangleScrolls.rel        |   1 +
 .../frameworld/$Default$Situation$Space.rel   |   9 +-
 .../FrameIT/frameworld/$Frameworld$Meta.rel   |   5 +-
 .../FrameIT/frameworld/$Pythagoras.rel        | 125 +++---
 .../$Triangle$Problem_$Right$Angle$At$C.rel   |   4 +-
 source/DefaultSituationSpace.mmt              |  16 +-
 source/MetaTheories.mmt                       | 362 +++++++++++++++++-
 source/Scrolls/MiscScrolls.mmt                |   2 +-
 source/Scrolls/SupplementaryAngles.mmt        |   4 +-
 source/Scrolls/TriangleScrolls.mmt            |  24 +-
 33 files changed, 475 insertions(+), 109 deletions(-)

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Angle$Sum.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Angle$Sum.omdoc.xz
index bf8b1ae0a1bfc8301a9bd7bbbb042d42d8c5b495..1d13cd70a4e13baa37333790a01edf5da8a26309 100644
GIT binary patch
delta 1681
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
b0q_pR<^cf0@DQA_#Ao{g000F500dcDI>;`9

delta 1677
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
X<^cej0s-~0#Ao{g000001X%%EFyBRz

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.omdoc.xz
index 022ad2d27d331f0f24d0e91671e23966210f8b78..7f2de8265273d9eb0d2b8f7bb88d0fb7445196b7 100644
GIT binary patch
delta 547
zcmV+;0^I%F1oQ=v83Y>20<@7G$A7MCw?5c!g@jUxCoD$*g_%4A4{z9A^B8^4X7W8R
zaNk$W1V0pCon2C0+FaXNml^K~A^T=rE;aXFqW-IIAsf+iyUO4(d7d8$VO^wH_XCdg
z;F-Bymk%`5pti3@CX`eon})^&GF(IeCH)@oV6=z8az4gAcbMyCn3w!Z*MIn&y;ifQ
zHAe*c`F1zJ06qX*_45fGO@lg8CyNO-ir~dY3-y#BfujLH4+)`sS{Le8^C8AXjVoJO
zW*v4+4BpTIoTtn4xT~7q$BkQWA6zFj_H6U7B*@h_VGT5I+foNDk6eJa0#x#j4<Gur
z-eOOG3RuPA-L27VtHx2IKYv@Jrusl;Lg}V9lZZ!+ZKAv?I}ES=g;6L%P`pDPdE~o<
zD8L)R6G+Y?jF3`oMODz3^5PV!otf&;;62vsh$8s{{Ns|n0BQmN&k@dtC$QkmG+zNa
z;2_s%talwEMt1|eF$Q!@9^8j5k+-WpKRZ%L65f~_^<*_iM~HQxTz|sLdK!Z-t>=g%
z;5s_z*gW_$WiGNt!}Bw{GQ@%)FOiwxP$LiMpk{X3WEAM=hdn>eK_3J+?Y1<||JmU-
zVN;(RGVIk(HIQYVtQYyZ_gO@%fDt?N?`uGdh<Pi-r)BP)f(6F5PZ?rgjU|KsjC!0c
l05RArRYwfhWdH%t1r*CQ00908XPU9ZXZr#G00004Sz7o6{!0J=

delta 393
zcmV;40e1fM1>6LX83YWJ0vVAV$A7I}ZDfL<IQ|bqN!HI)nr3>nTs!dFbIct~+JSQS
z3yu)pn`~G8nE**kXxuAy+Kojq>n5I2{JhINow5~%-B=V+KRfSgu<63RTH)=UgR=2s
z@DOB+aR_=p{R2=yDjE~K(h_Qb`LiI9ESwG%@gusPrt{EKfX6G760%9YQGf2$kIn5V
z@yl%5hP{P3_HnIEwv4(wAB(b^wBGhuTomY5=l+?20C?A8&|!jfl2BGc!b7uPXyr4Z
zOuxvXNVX*ei2rF{H;v)OMA;m(sphxzgw#yI!MHk?9dMSIGIXRLJs*-lVG#z}Uo+b3
zy;UHa#mnI6O0TYI`D%svd3qhc!745;&HCno$r{yFIE1SMS3Upm>oBYi3u$D4jWSfA
z8A9|Ty05I-mAeTk$azpIH30govd*i>AP8!?$e%IKfM;ZcV8gX&LH$#%!_eU)$u8gk
n000005gVK{6T5qq00FfGl^Fm4vU$7ZvBYQl0ssI200dcDwLQR<

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.omdoc.xz
index 4b37bdb1152ec36596733e072ab281d30d430738..f58dd1ac5451c19fd0e55f5fdb1830515be3f6b9 100644
GIT binary patch
delta 260
zcmV+f0sH>U1?&Wn83YRy0xYo|TmgUdApolR$mP8_&TBLO4C!fcSj7^^GGe+mE8@4Q
zN`hYSscHPjK(r=^ptkPNY>|9&#v-lKxjB*N0y5p-Urb1*(!*m|9ntaOW>)I!9Iv?}
zDj=XzS*U&=uh!{zpdgD@7${p8UHl6tx1AY?yjwXOiBCS~C+4hd(FY7iG#hl2LHto}
zzX@(cbx?nt`uZc}8b9#FS4@&XoVC<0d#P{hr+mhz#UZP!s*Hvfs|Oy=X}!1qJ)O;1
zy2aMwZwp?AKa6V7GV~{_S<ZW)>IV@^2#f&InP3@-EW9xQ0muZE761T{AX{0n#Ao{g
K000001X)_!EO{3I

delta 357
zcmV-r0h<2o1k44H83Yk<0*SF5TmgUfzCn$|A<aP<_oE700apTvMWq3BN!fi~cGrG<
z4B3WGe?(8Ix7Xmk-v)h!^H{^R=VQo%>Qa&u0P?v5+wk9SRPyNr+K5+@92j?^-2??b
z-K-6(<P=9EO^||qCXVG)r4&CZi@zXYW74p(FHvFT&+Me!)%4Z=4Zd<G3zvWIbte(4
zxSsO@hrztpKXQVJ8n#um<Zdfsq6zPbLIOyW$Bz@!qB&>ULArcoI@L&EWb%6%+#8SK
zI6I0+Ob`m6^t$_Uo$~Bp%xilQ-=-F#Ij`ls!tU~pG00C~TS^<rls8!-hTU{<Q1QMJ
z3a~TeiSs42>p#KWTqNjY#phM;vh5u@T1>$kKoG*cb@OX>Vz{iphbW!Pd}Np@$<Grx
z#64rHX_o=^sRxRTtKqF100000+!p|Le#EP#00E^1@ge{Kyf}A9vBYQl0ssI200dcD
DtbVIm

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Meta$Annotations.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Meta$Annotations.omdoc.xz
index e11b9e79a43c859c1da4ffeaa6baab5ffa7501db..8d01f7915ad285643da6b2c237c1b3872bf4fd79 100644
GIT binary patch
delta 575
zcmV-F0>J(32J8lq8UuI(EU_IU0e_d$D_3pTI_LS+2&Y!$=O0^kBqzt`waIuvG)gJF
zsSL}g(aa8k>S`xkX82L~>)ZWkG3kCsDv#M-;}b5ZjE;BbIYXHyNOy`T0|2Q+Xohc=
zA_>58M$MyRrgWSNOVL*ROO6jOYlPZrNgcmdnm>}MaO8m5Av-r?HdseOa(~KlX6N3W
z<!&4a1+&{iaAQ*(^U9#%3>jL3?QN((%;UrJy)_@89_naml)`csf~6>&4_>h6Ug+BP
z*awIt?%}g2U4kb2SkjNG7>!6uRKLKkc`#W^{)l4xL)i-$4SbV3Yz4dyS_DYpST3>r
zB(X3#<gV;XAR7ln(|x2Up?_uA>l5TrZEAEG_viiUq8(V=ro)O#j}&CkyG(ovFTKNx
zY4hsqWt&sZ!SuykY|E5INw_-HCGO9)qERhZ2be{b{0GT54QM(V{<Zf>Kj6=vAi32h
zV??J0SVII?(}&`tDv5>pqtg_Em1IF7=6Z1rB(cLfrk*FI$sKTBFMqd>dN6ZGSdros
zgd0q?8r6SS8H?=EMyqE4LWF(mgT<O82{daI2b#KN1zG-<lmvAj^x^;YDwX%U+Wf;D
z%#F?kz>b~-nkkU}l1Q31(dLOTq%uua#tJQb&$juPcpWG`uY5|6C&jV*ECNTM?P7~8
z^-qL=@?{Os+iEqQ;xJ@RL2ahc7@YGKoivqoRRE{>1=s2B#ZdqO$Oicu001w-aa*y(
NXZr#G00004Sz4(I6oUW&

delta 575
zcmV-F0>J(32J8lq8UuC%E3q9T0e_V@{BwZ+XH8GwYy6~zl7`)|MCbWcrb;`8;G{TW
z-=trsgIfO;vp5hy?9|u0g?8kmY$NxEai5y&H<ecz-T^|salz0cdyvd%E2i#<^>Apb
zA0&ux#@q!q@NHjYa0~%=4^o46$a6Bou*78?s2wEkzm$kZqc%h?X%Jk(;eXttBXV2+
zI*{a3y_RWDSkm5-%^#d}tm6{$g}x|CE9MrQp;DzJL*6!_56@5wwL;IZ<#7(OB!?WR
zQ-rN|q@^b^YuhHyt=7LjaKyBb)eh#DXxM6gH!M%T|Fgi9^3-TimuY7mQ>eX{K(y_j
z^r1pP0Iw4x^HKM^koGV^>3<OpQqqVPgi-_l1n^C8rGsS$C~NF@6WB33R?C<YfM$$T
zSXu&qhhz7FL~IrPm2T*IeqLVC>{o;y(a;Z=uQaV_)A1HCWqY%0#8}uzdx9*KN8MSC
zFdRn%qF*nL8KhOQ9q?tvBdD6W8DYJyJIl8rp3xAl?fJzcXVt34@_#|k4$X?XmRFlf
z7jrM%cqP32?y36yJfYZ0Iv4@{KI%hehdpKyvJqp#5}zs^q%i?UJN*BQ8MAa(r^;2d
z;|a6idyHST)fz8R1csxap?;XTfHrU2_}g5RsSy%s%vo)7(ncle?DS}n`+2Me6^s|7
zbXE+KINTHgY=mAN!!W!@p8yVV!rEy=N!{Of005~Yyr96G@>l=?#|HNr007Ac_)4+F
NXZr#G00004Sz0II7O?;T

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Midpoint.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Midpoint.omdoc.xz
index f03c131da820789cf2e3864e0a489ba9804b9cd6..c8354a0f018d32c5ff09aaba8cafea121bf9b92f 100644
GIT binary patch
delta 1421
zcmV;81#<e74Ui3x8UvvQO_3e`fB4i;Ui4v>|A!}tisCoHDEJr%d%xS~T2$*`mA3M-
zW183`xFa>fTl*Ri(YFaN)8_@2C@66(HjJ)1P)tiBqW_?#a3^wRZ;<=aI~hY^`;ZHP
z)%I*%{*tg1+>R~O=R^-${^-tV|9$fwu)LFfSkmv5{wTEZMtP0AfM#QdfA9CrAGD(1
z&XeI`i+j&=W|_1>q;tvv*`4Q!mSvBH^3`c>c9CqG#%NUWR=q7CQh{<i$=`6y7FmA%
zCZhysr=OmN?l2=0s7AheWD8Y&lY9vgTmVbA=(R=j%mj^v9s1pkgQF=zt{$?84q{y|
z@x%eJvi>jBu@+`uWzmO~f2!9!YHA;kqa2A&)AioDZ+3scJ{T31$?HqgbPyjvqf5Ef
z#t0|#Uvh`jch$UI)d!jVbS)o>1FvLJ1`AE7L5)mBQrtyknvn@X`5L5uTnk1sY`)G|
zD=J7h41Bdy3mg8?Z+NL+0Cmm=a3GZM;ubirrfmB)+@BDeyGd$ge-N&YtInMpEQKI{
zhQpV8^@BuQ4{?{j4p)s0B+G1jot>K_JCRrKCzfAJLUdRu5ont5(@x4NNAP1hqa*$z
zk$kSgM$<iD{3$F0c6tjN;Kk2NVHBxG=`Rrs!b*Bd@=e7LUyFAY#b2JrU|XTVG01>!
zRs7?dGx!9WUR4y`f8qm#6>P*+aoRU767^qe=MqL6!W@0_;gsWeBg8MP&L8362&uWk
z56jwzmujC5j+m~J4tHo%Ss^bwrZ-|@K8ahZH%2TWw1TIqmCk4w!v9C51Pi&6()OCh
zWB6frxCwKQxi5px&1m4^>?l^&iE(#dzpJDTEA$Lp(*)A$f8yMQ_CUxe{*HVX9@a<A
z>0QO2JkdgJ^kcogw=!DRF*hcjd$2xsE2;k;fxiJcP7yfP9Oi-+FN0m4h2Y=mw32g>
zD~p|1*D8VMyU?+A1Y$*LN^NP0F+eEByZ(N$KG&w>q3Z!XJg<YMTgBdC%P_*%(bwlY
z@!zq-DeQ+Ue=Ds}bvIGX^}PptE{9j*snqwDh+!g^`QhEo&Lbp~;dLrW{K>^mG74F+
z&X?mrU0<IV)G=8lleK@218p}*Xspz$!YMrTE%l4LxB@)hB@E{JLE<(7OFYOd@wGF<
zBpXD5zCz2!oYA%CK1yU@_O~^)exa6lw84f;XIiBEe{-SON<V!TK!gAcYHx%sckFPP
zm~QkBjqSu=skX3&){LjE?^sY7IWmuN-!`>j+g(vHfS5xls0GcpIfHHysU$8k4!8l3
z5f>xU&%p!9G`#iaN55L=>T(mb3=ZC`9~)B<rW?32eAJiFn>!>qX+<e*^cdHbq~!-8
zE~}MIe=Y?(LYNg*6y~;fa_U8&kp!usm=05edK$*H*9VOLN08PVF^-zV+(bJ}lZ0DR
z_A|9v2jH9g=dNJJb>ly#5P%AByjk<Hl3R?a<Z$glDRKBdbS7w5C0=d0VP}0=Yd7w_
zWY;HcR$LQ>*a$Cjwi0iAEbG{07u7qQ15;zRf7&zez#H=~-z<B}ee9Boyc+wc^~sK<
z0>q7R=L3rqcd<O%7KWUR<>Xiw)}dJmF8@VgXK%dUZ>~FFFO+U#ozW{7H&V|Am}zF)
z;Sr{sU{pb&(4RPdKGNXc5G@PwR^1v#4fi8u4I04jCd7F%wuH1WQB@s)eJ4DY86d9a
zf4#|6LZ>7miBFmu5FpbDOghuFw}7M`W2AuN|1@}y?={~CY8gi&B+2HAdY1;e9iH1t
zzGc++uqlBq7i-P>qE>|pC|kF{6-q=e;V8fl{ul)4L5qJ9AkUU800000Gdr+Qdh(Dn
b00HR?qRRmQ`08y`vBYQl0ssI200dcDcoDF1

delta 1426
zcmV;D1#S9}4U`R#8UvsPQIQ?~e^>(QW>81`vaYe*5VPlcF8}MV()h3ld)=~hC0zO}
ztm%oKPwf3+aKD5?oAwC3(F)b&?n$cu^KW}qHL-nt2Fp`_bg4zVcHBr~=R6s1w_kmA
z{)D%H!cF^{rXJ@>TLiOw7#c9q6g5NuD-KKlAG6pAyZVrpAJz7x?5j53f5uTSIG>!(
zN#nUwNq%l|7&Vlic=7R)G*pFa61=X#vov_)-6tm+L*;>8>wKcM@)HZ1grmt$f#E2*
zV%u?pzE2Opgakh|lv!ujvfoM$hX%~HDu>W;Kr%x~mBht?^0$kNe3&2CKeRDAiJC67
z{FPHfrhZ6%a5IlR7H~zaf3knX%XPPNB^#o5+C_Plu8-^Lwx1>di(h-*rN<G@wv*iF
zt7i|1B_?Il;BoCt{i)8zTpK-{#<T8{#}n`+v86;bYyf2<;<W0q5$m!HU5b8#6`0{T
zkj*wD1xawPK*sp){=-w{Uv*?79)9y^yz;<pw7A=@+<V3O7=KRze}H|;8@cQ12FR8l
zO$641K=0d710zoIRqZXi_`F+w{IC9*vQ4_M#{H00oe4<_qG}1xe}hi(SZMypaaj@q
zapno&{@-%Q_re{Y#~74%t8WW2>b_FLX*<lQ;doLKqG^h;UXU$7e?IVyXo_{*glgMn
z^bib*C!aJgSmR`}e|%d*^by7u9vp!xUB!}5&KE-uRn(F(Ve<~=^_su=aJe07A{9re
z0KCFXJSc=v@STpv1O`C<6wmYX!ub<3m|5a~Ub4|q>ng?~0E5LvGa+YV1-yk0Dx@Wv
z|33umUNCVIp=+ZfBLbqsdoaA~;IY*hkY4?a+qZf}@hre>e@_NHN1rrH*#sqiJJ6cz
z^T7&zYUa=M3*6&(8p3xwxvKNC@_57E;_TZ6%YUuSp97>xR(5bZ;0A<!ZAiK)NcF9~
z{)Q$6d&MR#QUU;?a!2WoTxrX~0XLz$NxfJNMmoA(Qsrm5RQW8rd^74-4+W#qm-w2;
zUGzh>D`#D9f4dOa<x>s8^DLyA2LqXLi3uYu=g>v@+&wLcEG~+eI8=;(5!>{L#DX)h
zn_~Grf)`2_W-f@&*9Ei$rBX8AN>tEppfuKOFk3y_P_wfI76-0=Jt}{c2)L7*RMJDw
zW<pt72z5B|k{{o@>c1EJF<}bIRfT<OsTEteACptce;&c4^`<P{jM|tR6TSE@rS$AV
z;m10tQyv0qJmXtd>ePHk+RDJmM2ok{#x(azh)%~IYVXiuk!;1zdi27>N{a-Z$Xl@D
zh*L>wtxG>I`<QFy(W~HdT`_r=p-rb`(?68X^B~sXi=;k0fd|z>EJR4Ei*#2e^Tl)=
z2%iGwf7V)bdQ_ajvdCEL2MoT79p3&Lrwr*d-C5L-R?A%8Aj19zQFokN(UXW0l8xj0
z6Lbr*QP0B@fzCL#w{Aep)yWGca}9O0Xdb34FF?NCgJaiVc^fn`R~h+2W@Y++2pY}^
zWPodRIe*??X!3#jI^Tow65eFMj33sK3DBMne*&BePKPu;f|Bhh*I;cxMH>5<?~tgM
ziAk-+EyH)L*I5e^%j1Go&US}eSBZ6U=G`4~t?op1Pl2P+YWtaf7*cO|)-k7--kEWH
zIuoIfQnEG7Dv)h%2ofKu&29-SpWxTAQR0;D=~%P;1?(ly{V}X=zcqdy6q#vM<z;w@
ze`}+X<B|Ch-Of1P(cG`<z=AFtBj3U;0B&=&DU;3wFuJSp+OOj5yxB!%j>_&;?d_VY
z+ipc`_I&&|U{y0V<dR3V4NIl^9Eq()e0q@qTC?lDDKcOISi(mm-?w*A00000TlFL$
g`5<A}00Hd`q00dP00&9kvBYQl0ssI21ONnCTD+vm00000

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Opposite$Len.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Opposite$Len.omdoc.xz
index a108280932a641225023c1f20ece77e258252ef7..88635db33d429f083926068770dc8fcf88174a1c 100644
GIT binary patch
delta 1914
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
A9{>OV

delta 1894
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

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Pythagoras.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Pythagoras.omdoc.xz
index 220acb5aaf530ad737af2ef4d70c27cecbb7d427..cea1f796dbc9fbc2a0969698d75f1fe6c704ccaf 100644
GIT binary patch
delta 1821
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
L0ssI200dcD6EAw7

delta 1772
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
O#Ao{g000001X)__7iHT3

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Supplementary$Angles.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Supplementary$Angles.omdoc.xz
index 6c87ea67192b69f18617be0ea0da3e425f4f5c74..7150180157c1ad2a49e77fc721b9cd1d310d1e77 100644
GIT binary patch
delta 1974
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
IMU%V;7|w>kz5oCK

delta 1974
zcmV;n2TAzU5!4Z|Apw8f1q!;WnO`p90Jri5|0&6sA7iL>8={$sndzi~ajF_~Z=`Rk
zfk%vxyT>|t89qR5t}uAx!tvLa8rYG(t_wFPwwA`ju$nGehxSl_dJNAcpgk!UoIu<#
zhRBXlPv>NaGj*8kAWj8vj<BUXXoQ*jifc(q^pk&_+$lNpznFi5SmUf{Ms)zWfFfH1
zCnTt^WCMcRz?7`Q*6mBVcfkl&&1I3Kzgi)7sZT9v0|TQ4;z;o#rYNM48WcDJ!$TJR
z0twGn3qyX&$%yG5%uGb}<4PvpbHhOLO<EQwr<-|7Wp&W-PKH94U|obgpKdfx=<7fo
zZld)C^&O<ii;;gYKf3qqZF5UW8m)z(#TH<!!xSY2py(69{;GshoWw#&@w0xnQ@s&u
zXcW+jc!)O7kho)#bfW}KHP`vOJrz$RiP;utc2-Yp?O#{0gDO8DTA7TEBO(4fuvbXf
z_vAJ=85E2vr6d;0^uQ9P*fJ7gB%3&pE!A46s*olv2I7A#xNIy;MHNq_^wXSl44mUG
zk0<EL?9%@(Wb3ugCSr=4B{WG~OfgB0lK-d=o^9k*;e{A3<>;2Gnghsm`JBa^h^Ynj
zXkFg-Yhf0%sq&93%0kRe36Uu^)Y+%X;RQgb0tU;4HO;bj-(wRGk)pWh1Hv+0X*OON
zZ~1;UX6Ju3AMCdM>Vn5r`y_dgASu#+M|Dq~r)^xnP`P_nav-My%}Y9rvYi;^@l(j=
z=8ZP}ZS1jNOVLPEMEM=P0Mvc&lW#%YKZQ*YEF2Ad4Bs|U$!cep7$i)Dv-_$&u+Nl#
zA0NM|*RB2!n2=$qA3foX|I36zD00_)F2`EsWbA)viw0Re0-<+8@ZhZ&Prd7s!qdyy
zGd<yMaU)4`k>LKq*Gj#HK{abVYjbxG!#cV+H^QYh_eSmMM59@`hT&M8z^a4f|GF`1
zm&U>wvF1|hN;yIiJq0L>xRQo;uSz)2-1vpC@ZL9|sU0L)s-NZy$Rfj=s6al(E}QzB
zI-Y+^fF!oOIuLJ@8U5|W+cKA=1I{rjem*73K|RnKy)%Tr0l^nc=Tl?28*Xq{?d7Co
zheZf(D4^yyp8#Sbq~0(x<+=N-0|4w%T!9a8sAYXHx@)oIxyK)gL)}F=rJ6f_uq%Yh
zn_7RxQBpDfm}M|8MVH#f=ZIr-(61sZ_E&$b1TH9b(A}XA5g>NQ)7K^+&xhGg@a`KN
zX2e2sK~M^7hL-PT;IoN+FYPr0M`pK^uM34R`+AUl?b5d2F}Gqj{Rzl7c{*UNt$B<M
zVyV=oiyWa=xMRp`xPogz*)tW&H$HR#NF@y%wLOG;Dm#4aW^>Ewg?Ir)Da{Y*tD}FI
zi2N@Mp~8M2ER!8><M~uVHy%r8pu_#sc?@H~se<*-Kc71V;pH2xhmW5%3Syxcf(ZVa
z`Qj9!tQ@raw1oIo&(Um`%cx%L(KavY7*;PSPT^qDt$<Nm;)eHK$vNrir^pFS7G4#`
zls5UBpP|1z?!VK^MKJ~9nJIG7f{1@Cq|2fXV2{YJ!HEy1<GhT?KdM>7gf$UQ@WY9u
z+sNb{u&p2n%I1-~U+3+gJzcLbjoL%*1*+xn?tw!SQ|uAA?DD=(oKGVjMdXX<7vRDS
zmQ_)7Z!|#$rS+~Wupn@GHqqLPxjHNwhTbGcb%8>%q`eP=heHzH<AGx762yPUp*Tn6
z+zPDL(~e`MpEobQ^GC9O^`6wOc9+m@A#t%4O3PZ|h2XVxZBA&McfjlV>SGW-$R8qT
zP<{-8#<Av9Mm(|oIXIfu!3i}wrN=T!jzEl1Xv?%tV?+ioisOh`6)5E~dNMFG<e9eK
zSyrWZk`V?kuwXW-dT2r*Yngv6>bbQQw`@8t-MLpX3UFH?4Ld>T=QK`J0K<*$WoNTl
zeGb$W-4s&gkm~&=0WLjGWE=V=6H5<p?nOFG8y#Q?^7E2XKywND)?rdW+JE7~^GuXE
zFy;NxFdF6DnS};TbB3tKlZLqpf$H9e><}{bzIvANTV<YP62y$a+Ms_KbgXMl(0C^G
zbeEk6KdxD4ZfyLZ*g59-+sWSdd6eGaGiX249Dkhap>zirmd_4-slOe-LtY>BkieOF
z64=s1OD`s^eo0%zk%$ZDe`ef9vkN{!Em~%D2qsfa+#@iJb>-`_25+KSQUU@x2azv$
zt$Oi#TA-B$P3MGPg4}<|XljhFo%Ct0(BM0o?hmaUTN`L{lovUjUf*;%>XE#Q$Vcsj
zCR%6vDlyYcB#$-E`-+N&@$rmn{Y&^`*_wUZ^k8Bjf&nlQb-~2Iz15;h;Vt2gRyIkq
zcLKA9{b^+CQ3dV2rR{f=-8INq7Y9fo`|flez))#uvLw;v*`I$$e~vdfvIW5q(IfYG
zmJSL|<$DI{yTQ@?ts2xD2MA-i8IvKMt&sN#C?Q4!3+eemuAwd1ZfXUscNYGiNa)N4
zZ23m*yIxH4ltF+Y&p40Yhk|k_8$O<>Bq=4C<m6LgWx*Z+mU_YdM^IU0ps+A?PK&jt
zCG~jj?!qD*XfrCf-dK@wavAC-$_OTLD%-5<yBd;ES~u!PE96#q0000003<YbEayE>
ID3iPh7~X=&;s5{u

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem.omdoc.xz
index 114223d374263e15ccd3d27b4e27aab25ebe3a58..b380d1824ee6ce8c8a4f5faab7a9dd12391b9dfb 100644
GIT binary patch
delta 108
zcmV-y0F(cO1%w5#3<6*iy|_W#tAzd+6OJG4@7Ig-u+dOP=H^Bj5<vy^1+_>c;_SQM
zbx|2iY!hEHn>j^H`Ed5A$iC|*a*Aqxk4^m|`pC7e%hD`&FlR92=1>6b;E+Z1X8-^g
Os4vw5_xZ?^Yyub{>NOt#

delta 108
zcmV-y0F(cO1%w5#3<6*kve73rT!B6@)pNOuq+g>rN1gcD>;<IS{v8tl`0DF2G->*S
zw9B`34qB#xP3ill88BM=YG~8vX`YlFbMTuRoW(H>pNA)dvn&24TKwfCfL8kgcK`r0
OD6PN>YlumcYyuec3Nn!Z

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Angle$At$A.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Angle$At$A.omdoc.xz
index 08b96e69ececec2468120093ba7bdde8fcc4ccc9..27549ca5bfb7f144e3bfff7c6b3e85b7ac1e01f2 100644
GIT binary patch
delta 965
zcmV;$13LVG3j7I>8Uy_VyRjWG0e?zL0MjfCT;xe+3bpGgm7+oINh^Gx%76@TO+WCj
z*ffwRFFdQPHH2s6+Z8j@XX$4^M!y656*rUQ%8Z3N7bl@?$&cxYtj}MB?!M^R8pkv{
z*eYg$OhmhT=_Uk8r7Db{{yk1<$?{UYaYIz0J;PLQmtz%Zg8-3oRf6$s)PFPT1V9D3
z-gj<{5`QcU7b4}+Tmx4jcd&Le*~Yq+lb|NckS|728GC+$vW~C(XB~TAh^VAM^^i(c
zp?2h`Uc!s{1!W~g0my4fk>&mtp0EGHnB<kQ5<Wtk??wCXcrr2HfLxxDvDMrT>Lg06
zKK&6hkucWc<{Eyad!va2Wq)XpQ;tecs>O*xFFfuL&X&wPO|eet7Ms}N()d2f>K`K$
zNSnMy6-bAPy)FFs*U23a<1j)E>=oC%+_5aVAAPVmcCJri2~H94X(B*0&;POO480f9
z8h-K%mRPLW^&!=WSE8Nb$pa2Q48HnA>_yXnuErvJ`U>P7k<)^i+<ys5sw~*AWfcS<
zi?ufxH$-3Cn-sSHN}Bh0Mx^Eu8Utbm!{SSv`ncDMvand66><7Q(@qrLy5aecU`hTh
zbRwpv=-Na^WH$Kp(3{T^k)oO~A`6wZ-koTRGk(o%y^-Q|Ip?!Tt~%gA{t#Mt4*O#}
z`k>Ji3<m4**B)=XTYr`fh+SE~S!y6o<gADF5B=IGz^$x1!h#I{1Tkm?ffg>vtZT&1
zCG60YmES#K&GvYsCFXf-h`mvR@xe=qP+CSees$G8awy@d7b`ERLuc;e9{l}%v!xL`
zc^<%YFM^zy1(I9I@3d=NAyxSTSRA#PUOV_7H89h4^fvWV)PI0eGe{o4)LXj)<7?qW
zZ3u@w1u1{Av1OEZPTi{P?0oy>XmM?_R!!C^&VlLDQWJk)PW%-y{*LLntl(mNJmhrV
za2Z@+|9T^^S*-p%8MW4Ox2KRj5rIa^Vkd%)sa`&7Ju(y^hr#DH&(_fDHZ@&v<S2!C
z#iks7(OneS0e_|Q;-RB*4c#@hL49ftRgSGjT>zl4PD(fRjBxN!%huf-xhv}PC@bhE
z*a^?*k(=(F76_Fi_33HGQETTvQJ6vjhvMchr@7J$H#pxzz<Z8<sJ+_&)IR8~Zw8v*
zG?Mn65D<8ql3}+uB^<9X+Fg83M^Q9chU9O?sPnO9h&F?nTnhl4VGU;U)tyP7(ZH*E
n)F1!=8pR<nWAawb00Gwt{%rsN+@r|nvBYQl0ssI200dcD$*<dY

delta 969
zcmV;)12+8p34jWa8Uy?Uz_A@L0e^lp_v?Q0Q2*Gppg3qu7zhIOXS?dQe)ne(a(3wP
zmOX_?(?_yQkIxTw`$IGa06L8j(Bnh6#gs6tUxNi&^f|b5ITwP5%muI<PW^LrHC&V3
zpY$xeHlo<A3*VrY$?K4w%9AmXk{Ymv1*JJ=ob2DhiZR8$1F7&u+yaztiGRJfa;e#a
zrc4aTB+f^PO2n{HK!7HM0Ft@5t@QmrTaHB-56pBrzR6_v_1uZK`R_nK+Bd3+=&6jZ
zdHZ8hg1h6CPSvO*47ol#ck;cA(XiI?909?cpyK*}%Vw1a^D!Jpy=AO*oywZY;|Q5O
z128d(a1@X5;;x}Ig~PJg{eKhtCp2%QfXR9eywUJ}aqiM(2K_@Q3qt=gpI*W2Cp2%Z
z5$HJNTwhpwU#vA3{0>P%9yQ^8#D#hTw8UcPpS0sL#mq!hkLS$}-oGFTkgmbHN~?mp
zN9AvbpyK9kQ84Nq`{OZCG{7bV?EVnWTb0unJynTDr5{(<e<QNRQGY3dbk6m-j(Rc=
zuO!sV#psW#*ND<X;;dDXBHBm@$WDWG&GsG6>~OKih*mJ~JT#IoJSw70DI-=i6C-?s
z9%&?-S0Jpc$F^U&)Us!k57s4{1#a)*;RA6K*_$zAFN(LlGw(UT$!U(zRNV$~8pFPJ
z`z)F^k2kvAy;BT0tbd6XK@#Z}Am=Xd$n@IOq;%z3HV9(kU{C_7??Ut&4(dHS>`-WX
zfN7>%yTJt*RMqMQ!`|Cj6B0ODksPz(27QdPXZq>);Ix3}Ux@B^8_)5Vtv{MkPbfoc
z(__|nXhI`~GQKDN07h1rDrs_L=NjT~d7vZU!$iW%w#sTyQGY|G%6f4GUAkpeSH7vD
zAsNL8tlJuZ04-ag$^y`o(gxNW<@m=w#0=#@>QyB|&u_Iw=2SqZ$J-0W)_zj2{yJ^j
zz1<jmZva!7xHjny8$-T2M@B=k^6cEqta=H9>63qhyA{EzQmo8Q)ef!a)4$7L^EM_c
z8Ze-D9^VaWrGMZKO|<<TZ4%mGiDBbr|Cu|TVb&g)$`<}b7Q%)DFt3=hd)*R?MSN!q
zeJo3oKd!+AS1bl$(0@-)cRfli4HYp<#}YU(c}`yyXxWPH=#-o<oh*f3q*~Z*n+JsW
z<u8BsRF`7LAxu;3^CHpVPwg2O7lA=1gsIbtOS<|ag*s&$J)&a$oT|37Au&J6Z`m)T
roU{+lq#*zRam`p{fdq<F00G<y{cQjM@%*}<vBYQl0ssI200dcD<htNv

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Angle$At$B.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Angle$At$B.omdoc.xz
index a467e2afbf41c1e7dbb81b57dd9bccd9210976d6..7eeb303a9c550409330bf2518636ca6938d2d9ba 100644
GIT binary patch
delta 825
zcmV-91IGOH2=oY$904@39WeoatIBSNK-J1Twk>FKH1TaY>sRZYImvOq1HH9~^dwH-
zPdw6}3?pE+gIOXMbt|_7<jljte5*Nxa<ySR{2`e-=6a`y4wo^V2d6t1iBvqV`HkZu
ztMn-O*KG3)xZuyf6L)5{(uS|>r#<p+!tUY7eaLA@E~|lr*pe%eVO1%AS`rJh_FkL<
zBSjHriJc@^wl_*LIO?W+bWk_Q>kS13Df5;?LSZ6RLs0r;aim_)lj->YhpUj!EbHGb
zYD<x6R41L36Wed<lJZ{2QmaoH)q^vXS?&#y;l5~oJ)37;;fX)Nji~&F{F30mx;Abh
zWW!;tP%?X=en>&W#l9tf1Phic8dr=v6Wz~66cvhGh*Ozab&`;=6QyzJu?o&B4$b%7
z=lAyep6EZ5EvB<h_;cE{J?&YAfCf3N#{21T8e=~|%S>kX2cWz99y`;f@$v(}EZM}X
zN7UU@q$Uw65rcE?+BYVCI@_??eyddD`TF?0I&d$@-(z?Hg+nTT<d{}q8UXd#ys`YH
zQc)-Y4OB3?&r_+E(a-tOqh)D3A)y<FFvJ^wh`;@kK0QS=6vS~QE%eg{aYNZaT(ecF
z?k0XoXP=!}ygYCJnX^QjlQb<13bsb{dGiE>fA5#f&JK)l1*{ynP5h#g#zi+1dqbfJ
zLv<8)KZowB)U5V@;REd?65FkwS%v>?+&pHOd^YQvM~nuCX!)DGj;#Tr)qzC?nho(=
z*W4d=F`})jFw=ls4{`5j1oLqnX+V>5=v+9Q*2lAbp&UYl9MDw4YKoVGMK0@nz+2uH
z5j?pOqyH-s%ZjO|lBo*6UpO9x>MCI)TzlLb)o0YG_mTa70^VBLAdH;a;EuE7>>s+9
zWpWrC#Q1&YVu`qaa{Xl%tl+);dSK}PQ(fm%LMy0;4q)g=qyr0GPY;?M+}si1R7@Ji
z*!w#Pj~r$&7>iJn^gSGY+tcBHg>8R$kE{?Dh1u7_xn_K-4zF;TbT>mNoXY{-y&VQ9
zwnJh?sX8Sr-Be#=I0PnR=e7U<uco<H*c3?n00GblwoU*5zcL1+vBYQl0ssI200dcD
DkGPZ9

delta 825
zcmV-91IGOH2=oY$904=29Weoar|Z4Q0_o$xcQnVU*ru;-!w9h!1+1z4lSIQltN`a#
zwjt0|M#1A#Sk3RRVJS3~1Z49m;*<(iWN$P@kzgPOPv5jd$nHYf!tE~{0cM(wuO(8y
zR%1zJ7vmX4*nPYadzR4_EKL9G!Q&x6r<BIo*jiyLoNnKx5x}P7QBF612P5{A`U^uH
z3BUkY7$#m~4)!r2v{rt#Qc#ft527z)f`A&*IC2xc!!rJk-nzyZ2Ju!qI5lbDKOG%l
z3{?3uG1eebc<@p-WkycwXsaGR{ZKNDN@TA=eO`$DF7pJ7>?M5Qo^~v|F<w$Duna+`
z-^Iq8Ay$O7pimuDc<`WqFeo*(8|c}XRof9gQ?z&Z8IvigV^_a#d2JYyW{`v*mMe(=
z7#FyLz(Bi;6%F%pr4#WT69pnVPfmRs+rP$Tm%K-XwX+6oalONdS*0)g{~>5d7b#R^
z>S8NOyHZR?uLLPP2Z0I-Z0=}(aPO=4`NA3y-y!BrtR2jS^0S_QjQs%L37ULxOP~!-
z8lDQfnijt}7AWj(JE#vIM1MjxT2sGUkQCBsW*vfY12(dKf*kfFmND@eM$f^(EQT&n
zKT#HQ_Q`&8JTl~#xxPX{JLi$EC@x&2rgo$_ROQ<>xwG-%<8`90@~8ywF#IuNo82CE
z7CFWJry)u`aNQe!$fYZX80OIbo7cnP#-6T-`gddwN{<Ff6)TL9YpgFOWl(ujBp2PS
zL%bGhO=9+TX^R9EIj?ZXZpjAi*i#&EBn583uOiveHz}&0^A@n>z>J|0g0n&ua)D`N
zE`VtB4%1eZa5~PX0)nGbK3*8ni$AQi@u#z&b;nxYd@x{t0tyd2XwC`nyB=z~{YXM;
zhh)tAd@pWmHmqs+$uLR)q!BNQtOrGNUQX$h*<@>JBvVZ<Wrvkh)^Lg?zMhS1fCi(%
zO~N5>5QMcehTv}D$z6rFtu+DG;gG;m;lDSzgfka3yT)gddGbrjd9~P~2_l^e1~Nl^
zp&AR?|73A2o-jX*1_v_;%2)sZFRG|LF7v*900GYkwoU*5@q&g?vBYQl0ssI200dcD
DqCt8V

diff --git a/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.omdoc.xz b/content/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.omdoc.xz
index d38587278df425f6c80b39c8203ee3645c79d182..f1c59d444fe2ae82e0b5f84dff6c682e0902e4ae 100644
GIT binary patch
delta 872
zcmV-u1DE{l39Jc_83aBY1ZlAyJpq4A$W35xIo8ECfs8pZ_rROzA`@&<a+76aeU!K?
zaIw$_Yn~`06;5C<vi!Q40UqklHIvh^UOg(Z0Q%@9#=Zm~|B#d-tgzQ!wyq9Jh>Jaz
z{RNqv+6O~m3dVF5!GX&BF6KoJ4Hj%Zu*AU@5kB1R3zCUvr^`=#3u*hW8TWr}%6X&y
z@{-^Npw(J;O>WFdUObd3kB`7B8P?Ao)oAt6N=+;U8wf0}-LI3Js->vp1_fmy&!TM|
z+b9Jf00c(q&vY)U1;aZ?VVa0A#{Ft+InCI?x?6!Ut2J;<+g}Ci_a6P}3MJG9hmv%>
z2a*hj28&fwMTRdR*)dKa-4K5T3;>-LH5e;Fhw_Xz!~-~Hwvd$F7_j!C|KftbI4N7Y
zL>eSdJKZ2$a}|tZjV!^NfUbPHoC#>|e4gJeDT9S%(f^bIQ1R$hjB0dA|5apDOuT92
zb{#u>Vp}lkxdc?a?x{htTDz!EP;j~vwu_L|T_Ur)_3{gXJa)0o6^DQA+Z;5WEziGs
z=i+_zgZT#YnzHV&a(5++`y>tW><4P)3+qjWtY9F5&a=1>?y{t#Bsd@ak7#i^P@69n
z6C(u2O20aX=%ijTuxrDy`VbaH`!u*Yv+o}1WWh-6WA@^@(W$Lv6SpwY7Tv}o%O1Z(
zFUKFP(e@Y6U^_VaV%&fFiN@t{6MCVUZL_sRrIaP`Xqhm>Z@{+BO&Zq?r6WzYWh?(E
zo)>4e6BGnP`s!-QMR!%rvN^VNLE5tNmo2jlXltwhgj4sh_{oitVhS9Be1i27a*{93
z;n<bp-~)4yiah7_fnRxL(besq$%++~cx7<oB(v+9<H$WUNLGJNHl7E?nD$X9+!$`d
zxN<3R$pIO;Xla;1Mx8G6>rMqSRalu}yq{!!6S&w-g?e)z1+$z!8Ko%vIN?%I))x`|
z8*95#*vIP48asc8L#cYK;mrCOX&bEs9PbAB)o$UTB#Xg4y{|x{K##`)FY9?bnxr}+
z_wG;F(l}0;wwPF01dC`fS53IAUC4q>c@%Pab&;;}ZHWy>jGkLD?w*aW)(RmQL&@vJ
yY|rf@5nq%a^=MrH00027fTu9^*QUe(0fh;jd;kE7oB5Kl#Ao{g000001X)^G6r+s*

delta 937
zcmV;a16KU33G4}w83aIP1gWtdJpq5AqB^+GQuN<#40U|WxKgvlR>jssAVWP3j(*-@
z{w#ZR3%$>H+>JUh<>E8h1=tGw;cz?8owzPh46#mDtRUc#CYhf&3q=nEs^%BZEZU*Y
zGTv1Y%}XdTp*J{cVJfYPqWLu{sj3B1kiFjve=+{>N|M&N;iu*R!zvu^=d^!&Yx$AR
znV3w4QL_l`b-T9?(tFO&@jAcU7*4hUb9_y2j+O5Nk^L+|^Tdch`>DuvM_E#VNIZ>k
z77+B67{G~z^l=Gu#VY12rN}_*SRmZxk>s`K6fx@aF>*mAtYutpc)twxfUP}|*U*6$
z#d{DWg3~#z`^QrZ^qQ%K<C=eeGLY6P_MH{GVWTk_9UpL8L_q2ua$SOWf2Jr96s7ao
zJ1rH-`Q*9+eU1RNbMfB(LDNZ_EzPPvYu18aFfc##92ZZf(I;~rh9m0DyQpNNlfSYU
z2enn^Vh^h(Wk|Q8#!E@XvPp$eo{^b@S{GAwPxHHS0<Cg1asT^=Ixv3&RFmMN@IZ~N
zQ`$R9APb(1;ic~aNAHE+&Yto^+d4TVbIQ(Q*(4w~g!+a0T6b6Bz<28{JT%KfDJbu1
zI{oI1@~VK(7h`@d2i=(LkXOYSn9qN+NXqMR#vy3b=D^pORT|r;9vwdG#li}PN+R{s
z74+a$ZVk&~D%bI=eB^(kjySxNMWA!ywvi%P0}mE&dTw%)%t1Mzn9re<<Hd$=X2!(k
zvxHk+djnhJ|NYWQS4xqQorit9a&wCUDVa8Jw)=39n%sNf$dn?H@Ui#`Dd8ku7soC7
zSX`f&zgZ4y1G`Q6qn>UXPT0{NE<iZ$_NK_GK2a)BV?hy{jtze$83QJ#WR-4yK37W0
z)W-Y6w&gS48WgeLvV-IylI*`Uf|1{g=D#TNFrUD($&y&qK*`+tI%#ZloJCE%PN*{V
z^1MANF_H5Tox2iinQK8kK4#mN7YNQ2($i09v3S(gMTmVvZn#}yw`JTu##-M`0?v`s
z<cn?XdBqM_G*N#+XVCfxoJ*LTUi{}Uq+8+Ex&lZB`sAK9Ca4-t6cn0$Wq^EI10yZu
zfVAZe>tgH;O~J)siMkISMUc4wlRmeNbU}E_U(b=fnf^0F;6X;di&b*Ouae`CULxiZ
zYU)u5ogFh5P?oe7&Ia$%4gW&rO;rE@0000%FRVbP-3u9$00G4b=YRnK>uTmavBYQl
L0ssI200dcD*!0gv

diff --git a/errors/mmt-omdoc/DefaultSituationSpace.mmt.err b/errors/mmt-omdoc/DefaultSituationSpace.mmt.err
index a003a31..e69de29 100644
--- a/errors/mmt-omdoc/DefaultSituationSpace.mmt.err
+++ b/errors/mmt-omdoc/DefaultSituationSpace.mmt.err
@@ -1,2 +0,0 @@
-<errors>
-</errors>
diff --git a/errors/mmt-omdoc/MetaTheories.mmt.err b/errors/mmt-omdoc/MetaTheories.mmt.err
index a003a31..e69de29 100644
--- a/errors/mmt-omdoc/MetaTheories.mmt.err
+++ b/errors/mmt-omdoc/MetaTheories.mmt.err
@@ -1,2 +0,0 @@
-<errors>
-</errors>
diff --git a/errors/mmt-omdoc/Scrolls/MiscScrolls.mmt.err b/errors/mmt-omdoc/Scrolls/MiscScrolls.mmt.err
index a003a31..e69de29 100644
--- a/errors/mmt-omdoc/Scrolls/MiscScrolls.mmt.err
+++ b/errors/mmt-omdoc/Scrolls/MiscScrolls.mmt.err
@@ -1,2 +0,0 @@
-<errors>
-</errors>
diff --git a/errors/mmt-omdoc/Scrolls/SupplementaryAngles.mmt.err b/errors/mmt-omdoc/Scrolls/SupplementaryAngles.mmt.err
index a003a31..e69de29 100644
--- a/errors/mmt-omdoc/Scrolls/SupplementaryAngles.mmt.err
+++ b/errors/mmt-omdoc/Scrolls/SupplementaryAngles.mmt.err
@@ -1,2 +0,0 @@
-<errors>
-</errors>
diff --git a/errors/mmt-omdoc/Scrolls/TriangleScrolls.mmt.err b/errors/mmt-omdoc/Scrolls/TriangleScrolls.mmt.err
index a003a31..e69de29 100644
--- a/errors/mmt-omdoc/Scrolls/TriangleScrolls.mmt.err
+++ b/errors/mmt-omdoc/Scrolls/TriangleScrolls.mmt.err
@@ -1,2 +0,0 @@
-<errors>
-</errors>
diff --git a/narration/DefaultSituationSpace.omdoc b/narration/DefaultSituationSpace.omdoc
index 5c9ef7d..c3da48e 100644
--- a/narration/DefaultSituationSpace.omdoc
+++ b/narration/DefaultSituationSpace.omdoc
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<omdoc base="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.mmt#0.0.0:300.12.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><mref name="[http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace]" target="http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.mmt#117.4.0:144.4.27"/></metadata></mref></omdoc>
\ No newline at end of file
+<omdoc base="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.mmt#0.0.0:699.26.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><mref name="[http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace]" target="http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/DefaultSituationSpace.mmt#117.4.0:144.4.27"/></metadata></mref></omdoc>
\ No newline at end of file
diff --git a/narration/MetaTheories.omdoc b/narration/MetaTheories.omdoc
index a75d096..34be72d 100644
--- a/narration/MetaTheories.omdoc
+++ b/narration/MetaTheories.omdoc
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<omdoc base="http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#0.0.0:1074.34.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://cds.omdoc.org/urtheories?LF"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#70.4.0:198.4.128"/></metadata>MMT meta keys and value constructors for meta annotations of facts in situation theories and (input/output) facts in scrolls</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?MetaAnnotations]" target="http://mathhub.info/FrameIT/frameworld?MetaAnnotations"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#200.5.0:221.5.21"/></metadata></mref><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#628.22.0:723.22.95"/></metadata>The meta theory to use for situation theories, scroll problem, and scroll solution theories</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?FrameworldMeta]" target="http://mathhub.info/FrameIT/frameworld?FrameworldMeta"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#725.23.0:745.23.20"/></metadata></mref></omdoc>
\ No newline at end of file
+<omdoc base="http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#0.0.0:20521.388.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://cds.omdoc.org/urtheories?LF"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#125.5.0:253.5.128"/></metadata>MMT meta keys and value constructors for meta annotations of facts in situation theories and (input/output) facts in scrolls</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?MetaAnnotations]" target="http://mathhub.info/FrameIT/frameworld?MetaAnnotations"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#255.6.0:276.6.21"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?2DPoints]" target="http://mathhub.info/FrameIT/frameworld?2DPoints"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#685.24.1:699.24.15"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITBasics]" target="http://mathhub.info/FrameIT/frameworld?FrameITBasics"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#1094.48.0:1113.48.19"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITRectangles]" target="http://mathhub.info/FrameIT/frameworld?FrameITRectangles"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#4340.108.0:4363.108.23"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITTriangles]" target="http://mathhub.info/FrameIT/frameworld?FrameITTriangles"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#7437.158.0:7459.158.22"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITCircle]" target="http://mathhub.info/FrameIT/frameworld?FrameITCircle"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#10771.202.0:10790.202.19"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITCone]" target="http://mathhub.info/FrameIT/frameworld?FrameITCone"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#12754.240.0:12771.240.17"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITCylinder]" target="http://mathhub.info/FrameIT/frameworld?FrameITCylinder"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#16111.295.0:16132.295.21"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?FrameITTheories]" target="http://mathhub.info/FrameIT/frameworld?FrameITTheories"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#17019.318.0:17040.318.21"/></metadata></mref><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#19961.370.0:20056.370.95"/></metadata>The meta theory to use for situation theories, scroll problem, and scroll solution theories</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?FrameworldMeta]" target="http://mathhub.info/FrameIT/frameworld?FrameworldMeta"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/MetaTheories.mmt#20058.371.0:20078.371.20"/></metadata></mref></omdoc>
\ No newline at end of file
diff --git a/narration/Scrolls/MiscScrolls.omdoc b/narration/Scrolls/MiscScrolls.omdoc
index d967130..6e9db13 100644
--- a/narration/Scrolls/MiscScrolls.omdoc
+++ b/narration/Scrolls/MiscScrolls.omdoc
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#0.0.0:1241.36.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#0.0.0:84.0.84"/></metadata>Miscellaneous scrolls for playing around/testing that don't have a good home yet</opaque><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><mref name="[http://mathhub.info/FrameIT/frameworld?Midpoint]" target="http://mathhub.info/FrameIT/frameworld?Midpoint"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#165.5.0:179.5.14"/></metadata></mref></omdoc>
\ No newline at end of file
+<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#0.0.0:1242.36.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#0.0.0:85.0.85"/></metadata>Miscellaneous scrolls for playing around/testing that don't have a good home yet</opaque><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><mref name="[http://mathhub.info/FrameIT/frameworld?Midpoint]" target="http://mathhub.info/FrameIT/frameworld?Midpoint"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/MiscScrolls.mmt#166.5.0:180.5.14"/></metadata></mref></omdoc>
\ No newline at end of file
diff --git a/narration/Scrolls/SupplementaryAngles.omdoc b/narration/Scrolls/SupplementaryAngles.omdoc
index b5fb88e..de14b36 100644
--- a/narration/Scrolls/SupplementaryAngles.omdoc
+++ b/narration/Scrolls/SupplementaryAngles.omdoc
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#0.0.0:1623.46.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#78.3.0:245.11.0"/></metadata><scope>\
+<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#0.0.0:1627.46.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#78.3.0:246.11.0"/></metadata><scope>\
        \ D
         \
  ________\_________
 A         B        C
 
-The scroll encodes angle ABD + angle DBC = 180°, or rather, angle DBC = 180° - angle ABD</scope></opaque><mref name="[http://mathhub.info/FrameIT/frameworld?SupplementaryAngles]" target="http://mathhub.info/FrameIT/frameworld?SupplementaryAngles"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#247.12.0:272.12.25"/></metadata></mref></omdoc>
\ No newline at end of file
+The scroll encodes angle ABD + angle DBC = 180°, or rather, angle DBC = 180° - angle ABD</scope></opaque><mref name="[http://mathhub.info/FrameIT/frameworld?SupplementaryAngles]" target="http://mathhub.info/FrameIT/frameworld?SupplementaryAngles"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/SupplementaryAngles.mmt#248.12.0:273.12.25"/></metadata></mref></omdoc>
\ No newline at end of file
diff --git a/narration/Scrolls/TriangleScrolls.omdoc b/narration/Scrolls/TriangleScrolls.omdoc
index e0ac541..cdf39a4 100644
--- a/narration/Scrolls/TriangleScrolls.omdoc
+++ b/narration/Scrolls/TriangleScrolls.omdoc
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#0.0.0:4919.141.3"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#0.0.0:47.0.47"/></metadata>Modular scrolls having to do with triangles</opaque><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#128.5.0:322.14.0"/></metadata>A blueprint problem theory for triangle scrolls
+<omdoc base="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#0.0.0:5183.146.0"/><meta property="http://cds.omdoc.org/?metadata?importedby"><om:OMOBJ xmlns:om="http://www.openmath.org/OpenMath"><om:OMLIT type="http://www.openmath.org/cd?OpenMath?OMSTR" value="mmt-omdoc"/></om:OMOBJ></meta></metadata><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#0.0.0:47.0.47"/></metadata>Modular scrolls having to do with triangles</opaque><instruction text="namespace http://mathhub.info/FrameIT/frameworld"/><instruction text="fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta"/><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#128.5.0:322.14.0"/></metadata>A blueprint problem theory for triangle scrolls
        B
       /|
      / |
@@ -9,4 +9,4 @@
 
   (nicer image: https://en.wikipedia.org/wiki/Right_triangle#/media/File:Rtriangle.svg)</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#324.15.0:345.15.21"/></metadata></mref><opaque format="text"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#497.21.0:653.23.77"/></metadata>A blueprint problem theory for triangle scrolls that require a right angle
 
-   We use ?TriangleScroll_GeneralProblem and demand the angle at C to be 90°</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#655.24.0:690.24.35"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtA]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtA"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#987.33.0:1017.33.30"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#1276.42.0:1306.42.30"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?AngleSum]" target="http://mathhub.info/FrameIT/frameworld?AngleSum"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#1520.51.0:1534.51.14"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?OppositeLen]" target="http://mathhub.info/FrameIT/frameworld?OppositeLen"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#2573.77.0:2590.77.17"/></metadata></mref></omdoc>
\ No newline at end of file
+   We use ?TriangleScroll_GeneralProblem and demand the angle at C to be 90°</opaque><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#655.24.0:690.24.35"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtA]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtA"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#1019.34.0:1049.34.30"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB]" target="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#1308.43.0:1338.43.30"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?AngleSum]" target="http://mathhub.info/FrameIT/frameworld?AngleSum"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#1552.52.0:1566.52.14"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?OppositeLen]" target="http://mathhub.info/FrameIT/frameworld?OppositeLen"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#2605.78.0:2622.78.17"/></metadata></mref><mref name="[http://mathhub.info/FrameIT/frameworld?Pythagoras]" target="http://mathhub.info/FrameIT/frameworld?Pythagoras"><metadata><link rel="http://cds.omdoc.org/mmt?metadata?sourceRef" resource="http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.mmt#3857.111.1:3873.111.17"/></metadata></mref></omdoc>
\ No newline at end of file
diff --git a/relational/MetaTheories.rel b/relational/MetaTheories.rel
index 8b853ec..6b8fa19 100644
--- a/relational/MetaTheories.rel
+++ b/relational/MetaTheories.rel
@@ -1,3 +1,11 @@
 document http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc
 Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?MetaAnnotations
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?2DPoints
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITBasics
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITRectangles
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITTriangles
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITCircle
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITCone
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITCylinder
+Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameITTheories
 Declares http://mathhub.info/FrameIT/frameworld/MetaTheories.omdoc http://mathhub.info/FrameIT/frameworld?FrameworldMeta
diff --git a/relational/Scrolls/TriangleScrolls.rel b/relational/Scrolls/TriangleScrolls.rel
index 05c2bf8..488dd37 100644
--- a/relational/Scrolls/TriangleScrolls.rel
+++ b/relational/Scrolls/TriangleScrolls.rel
@@ -5,3 +5,4 @@ Declares http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc ht
 Declares http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB
 Declares http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc http://mathhub.info/FrameIT/frameworld?AngleSum
 Declares http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc http://mathhub.info/FrameIT/frameworld?OppositeLen
+Declares http://mathhub.info/FrameIT/frameworld/Scrolls/TriangleScrolls.omdoc http://mathhub.info/FrameIT/frameworld?Pythagoras
diff --git a/relational/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.rel b/relational/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.rel
index f9fa1b0..978c253 100644
--- a/relational/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.rel
+++ b/relational/http..mathhub.info/FrameIT/frameworld/$Default$Situation$Space.rel
@@ -3,7 +3,14 @@ HasMeta http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace http://math
 Declares http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace?Root
 theory http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root
 HasMeta http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?FrameworldMeta
-Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?SupplementaryAngles
 Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?OppositeLen
 Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?AngleSum
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?CylinderVolumeScroll
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?PlaneAngleToAngleScroll
 Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?Midpoint
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?CircleScroll
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?SinOppositeLeg
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?PlaneLineAngleScroll
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?CircleAreaScroll
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?ConeVolumeScroll
+Includes http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/Root http://mathhub.info/FrameIT/frameworld?TruncatedConeVolumeScroll
diff --git a/relational/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.rel b/relational/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.rel
index 956f223..8be1a94 100644
--- a/relational/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.rel
+++ b/relational/http..mathhub.info/FrameIT/frameworld/$Frameworld$Meta.rel
@@ -1,8 +1,5 @@
 theory http://mathhub.info/FrameIT/frameworld?FrameworldMeta
 HasMeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://cds.omdoc.org/urtheories?LF
 Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/FrameIT/frameworld?MetaAnnotations
-Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/MitM/Foundation?Strings
-Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://gl.mathhub.info/MMT/LFX/Sigma?LFSigma
+Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/FrameIT/frameworld?FrameITTheories
 Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/MitM/Foundation?Math
-Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/MitM/core/geometry?3DGeometry
-Includes http://mathhub.info/FrameIT/frameworld?FrameworldMeta http://mathhub.info/MitM/core/geometry?Planes
diff --git a/relational/http..mathhub.info/FrameIT/frameworld/$Pythagoras.rel b/relational/http..mathhub.info/FrameIT/frameworld/$Pythagoras.rel
index 8c07a17..abc155a 100644
--- a/relational/http..mathhub.info/FrameIT/frameworld/$Pythagoras.rel
+++ b/relational/http..mathhub.info/FrameIT/frameworld/$Pythagoras.rel
@@ -1,68 +1,61 @@
 theory http://mathhub.info/FrameIT/frameworld?Pythagoras
 HasMeta http://mathhub.info/FrameIT/frameworld?Pythagoras http://mathhub.info/FrameIT/frameworld?FrameworldMeta
-Declares http://mathhub.info/FrameIT/frameworld?Pythagoras http://mathhub.info/FrameIT/frameworld?Pythagoras?Pythagoras_Problem
-theory http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem
-HasMeta http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem http://mathhub.info/FrameIT/frameworld?FrameworldMeta
-Includes http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem http://mathhub.info/FrameIT/frameworld?TriangleScroll_RightAngledProblem
-Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC
-constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?ded?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?prop?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?A?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?C?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?eq?type
-Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC
-constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?ded?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?prop?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?C?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?B?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?eq?type
-Declares http://mathhub.info/FrameIT/frameworld?Pythagoras http://mathhub.info/FrameIT/frameworld?Pythagoras?Pythagoras_Solution
-theory http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution
-HasMeta http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution http://mathhub.info/FrameIT/frameworld?FrameworldMeta
-Includes http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem
-Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse
-constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?ded?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?prop?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?A?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?B?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?eq?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?addition?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?prop?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?exists_unique?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?ded?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?NatLiterals?nat_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?exists_unique?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?squareRoot?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://cds.omdoc.org/urtheories?Ded?DED?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?InformalProofs?proofsketch?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?NatLiterals?pos_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?eq?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?B?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?InformalProofs?trivial?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceBC?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://cds.omdoc.org/urtheories?Bool?BOOL?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?exponentiation?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?ded?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Problem?distanceAC?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?prop?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?multiplication?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?TriangleScroll_GeneralProblem?A?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
-DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Pythagoras_Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Strings?string?type
+Declares http://mathhub.info/FrameIT/frameworld?Pythagoras http://mathhub.info/FrameIT/frameworld?Pythagoras?Problem
+theory http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem
+HasMeta http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem http://mathhub.info/FrameIT/frameworld?FrameworldMeta
+Includes http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC
+Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC
+constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?A?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?C?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?eq?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?prop?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?ded?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
+Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC
+constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?C?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?B?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?eq?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?prop?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?ded?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
+Declares http://mathhub.info/FrameIT/frameworld?Pythagoras http://mathhub.info/FrameIT/frameworld?Pythagoras?Solution
+theory http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution
+HasMeta http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution http://mathhub.info/FrameIT/frameworld?FrameworldMeta
+Includes http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem
+Declares http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse
+constant http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?A?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?B?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?eq?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?prop?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?ded?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://cds.omdoc.org/urtheories?Strings?string?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceAC?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?TriangleProblem?A?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?eq?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/geometry?Geometry/Common?metric?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?multiplication?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://cds.omdoc.org/urtheories?Bool?BOOL?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?Pythagoras/Problem?distanceBC?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?InformalProofs?proofsketch?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?ded?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://cds.omdoc.org/urtheories?Ded?DED?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?TriangleProblem?B?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/FrameIT/frameworld?FrameITBasics?useRoot?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?ded?definition
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/core/arithmetics?RealArithmetics?addition?type
+DependsOn http://mathhub.info/FrameIT/frameworld?Pythagoras/Solution?deducedHypotenuse?definition http://mathhub.info/MitM/Foundation?Logic?prop?type
diff --git a/relational/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.rel b/relational/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.rel
index 21db50e..0fb5bab 100644
--- a/relational/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.rel
+++ b/relational/http..mathhub.info/FrameIT/frameworld/$Triangle$Problem_$Right$Angle$At$C.rel
@@ -4,14 +4,12 @@ HasMeta http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC htt
 Includes http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC http://mathhub.info/FrameIT/frameworld?TriangleProblem
 Declares http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC
 constant http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC
+DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/FrameIT/frameworld?FrameITBasics?rightAngle?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?A?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?C?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/FrameIT/frameworld?TriangleProblem?B?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/core/geometry?3DGeometry?point?type
-DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?Logic?eq?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?Logic?ded?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/core/geometry?Geometry/Common?angle_between?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?Logic?prop?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?Logic?ded?type
 DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?Logic?prop?definition
-DependsOn http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC?type http://mathhub.info/MitM/Foundation?RealLiterals?real_lit?type
diff --git a/source/DefaultSituationSpace.mmt b/source/DefaultSituationSpace.mmt
index 7ad9610..53a79d8 100644
--- a/source/DefaultSituationSpace.mmt
+++ b/source/DefaultSituationSpace.mmt
@@ -4,9 +4,23 @@ fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta ❚
 
 theory DefaultSituationSpace =
     theory Root =
-        include ?SupplementaryAngles ❙
+    //     include ?SupplementaryAngles ❙
         include ?OppositeLen ❙
         include ?AngleSum ❙
+    //    include ?ParallelLines ❙
+	//    include ?InterceptTheorem ❙
+	 //   include ?Pythagoras❙
+	    include ?CylinderVolumeScroll❙
+		include ?PlaneAngleToAngleScroll❙
+
         include ?Midpoint ❙
+        include ?CircleScroll ❙
+        include ?SinOppositeLeg ❙
+        include ?PlaneLineAngleScroll ❙
+        include ?CircleAreaScroll ❙
+        include ?ConeVolumeScroll ❙
+        include ?TruncatedConeVolumeScroll ❙
+
+
     ❚
 ❚
diff --git a/source/MetaTheories.mmt b/source/MetaTheories.mmt
index 895da27..39ae590 100644
--- a/source/MetaTheories.mmt
+++ b/source/MetaTheories.mmt
@@ -1,4 +1,5 @@
 namespace http://mathhub.info/FrameIT/frameworld ❚
+// import rules scala://rules.frameit.mmt.kwarc.info ❚
 
 fixmeta ur:?LF ❚
 
@@ -20,15 +21,368 @@ theory MetaAnnotations =
     description_verbalization_of # dverb ❙
 ❚
 
+
+ theory 2DPoints =
+       include ?FrameITBasics ❙
+
+    // simple 2d Point theory. ❙
+	Point2D : type ❘ # point2d ❙
+	Point2Dmk : ℝ ⟶  ℝ ⟶ point2d ❘ # mkpoint2d 1 2 ❙
+
+    XPoint2D : point2d ⟶ ℝ ❘ # p2x 1  ❙
+
+   XPoint2DAxiom : {x,y} ⊦ ( p2x (mkpoint2d x y ) ≐ x ) ❘ role Simplify❙
+
+
+    YPoint2D : point2d ⟶ ℝ ❘ # p2y 1  ❙
+    YPoint2DAxiom : {x,y} ⊦  ( p2y (mkpoint2d x y ) ) ≐ y ❘ role Simplify ❙
+
+
+
+
+
+ ❚
+
+
+
+
+theory FrameITBasics =
+      include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+      include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+
+       // Basics for FrameIT theories ❙
+
+       // a lot of Simplify roles, so the scrolls get simplified accordingly ❙
+      // com_dist : {p1: point,p2: point} ⊦  ( d- p1 p2 ) ≐  ( d- p2 p1 )  ❘ role Simplify ❙
+
+
+
+       axiomBasepoint2 : {p1,p2} ⊦ from (from p1 to p2) ≐ p1  ❘ role Simplify ❙
+       axiomTargetpoint2 : {p1,p2} ⊦ to (from p1 to p2) ≐ p2  ❘ role Simplify ❙
+
+       PlaneBaseAxiom12 : {v, w, b } ⊦ Pbase (Ppara b v w ) ≐ b ❘ role Simplify  ❙
+       PlaneBaseAxiomNormal2 : { v, b } ⊦ ( Pbase ( Ppn b v ) ) ≐ b ❘ role Simplify ❙
+
+       normalAxiom12 : { v, w, b } ⊦ ( Pnormal ( Ppara b v w ) ) ≐ ( normalize ( v Vcross w ) ) ❘ role Simplify  ❙
+       normalAxiom22 : { v, b } ⊦ ( Pnormal ( Ppn b v ) ) ≐ ( norm ( v ) ) ❘ role Simplify  ❙
+
+       rightAngle : point ⟶ point ⟶ point ⟶ bool ❘ # ∠r 1 2 3 ❙
+       epsi = 0.000000000004626 ❙
+
+       // early on there where problems with those functions. They might not be required anymore ❙
+       multiplyPointScalar : ℝ  ⟶ point ⟶   point  ❘ = [a, P ] ⟨a ⋅ ( P _x ) , a ⋅ (P _y ), a ⋅ (P _z )⟩ ❘ # 1 rdotp 2 prec 22  ❙
+       addPointPoint : point ⟶  point ⟶   point  ❘ = [Q,P ] ⟨ ( Q _x ) + ( P _x ) , ( Q _y ) + (P _y ), ( Q _z ) + (P _z )⟩ ❘ # 1 p+p 2 prec 12  ❙
+       subtractPointPoint : point ⟶  point ⟶   point  ❘ = [Q,P ] ⟨ ( Q _x ) - ( P _x ) , ( Q _y ) - (P _y ), ( Q _z ) - (P _z )⟩ ❘ # 1 p-p 2 prec 12 ❙
+
+       directionLine : line ⟶ point ❘ = [l] ( to l ) p-p ( from l ) ❘ # directionL 1 ❙
+
+       // added those, because sometimes you cant use certain operations in scrolls? Maybe this bug is fixed by now? ❙
+       useRoot : ℝ ⟶ ℝ ❘  = [a] √ a ❘ # doRoot 1 ❙
+       absValue : ℝ ⟶ ℝ ❘  = [a] √ (real_pow a 2.0 ) ❘ # doAbs 1 ❙
+
+
+       useDiv : ℝ ⟶ ℝ ⟶ ℝ ❘  = [a,b] a / b ❘ # doDiv 1 2 ❙
+       useInv : ℝ ⟶ ℝ  ❘  = [a] inv a ❘ # doInv 1 ❙ //  trying to make inv work  ❙
+       useExpo :  ℝ ⟶ ℝ ⟶ ℝ ❘  = [a,b]  real_pow a b ❘ # doExpo 1 2 ❙
+
+       // projection and distance function for planes ❙
+       helperFunctionForProjection : plane ⟶ point ⟶ ℝ ❘ = [e, p] ( < ( Pnormal e )  , ( planeBase e ) > - < ( Pnormal e ) , p > ) / ( < ( Pnormal e ) , ( Pnormal e ) >  )  ❘ # helperT 1 2 prec 1 ❙
+       orthogonalProjectionPointToPlane : plane ⟶ point ⟶ point ❘ = [e,p] p p+p ( ( helperT e p ) rdotp( Pnormal e ) ) ❘ # orthogProjPointToPlane 1 2 prec 1 ❙
+       distancePlanePoint : plane ⟶ point ⟶ ℝ ❘ = [e,p] ( doAbs ( < Pnormal e , p > - < Pnormal e  , Pbase e > ) ) / ( |   Pnormal  e  |  )  ❘ # distPlP 1 2 prec 1 ❙
+
+       // functions to calculate the angle between a plane and a line ❙
+       anglePlaneLineCalc : point ⟶ point ⟶ ℝ ❘ = [v,w] asin ( < v,w > / (|v| ⋅ |w|)) ❘ # plcalc 1 2 prec 1 ❙
+       anglePlaneLine : plane ⟶ line ⟶ ℝ ❘ = [e,l] plcalc ( Pnormal e ) ( directionL l ) ❘ # ∠pl 1 2 prec 1 ❙
+       radToDegree : ℝ ⟶ ℝ ❘ = [r] ( r / pi_num ) ⋅ 180.0  ❘ # radToDegree 1 prec 1 ❙
+
+
+       // obvious proofs that sometimes are required ❙
+
+       lineOnProofFrom: {l } ⊦ ( from l )  on l ❘ # fromOnProofLine 1  ❙
+       lineOnProofTo: {l } ⊦ ( to l )  on l ❘ # toOnProofLine 1  ❙
+
+
+
+ ❚
+
+
+theory FrameITRectangles =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITBasics ❙
+
+        // used for parallelLineTheorem  ❙
+        isRectangle : point ⟶ point ⟶ point ⟶ point ⟶ bool ❘ = [p1, p2 , p3, p4] ( rightAngle p1 p2 p3) ∧ ( rightAngle p2 p3 p4) ∧ ( rightAngle p3 p4 p1) ∧ ( rightAngle p4 p1 p2)  ❘ # isRect 1 2 3 4  ❙
+
+        rectangleProof : {p1,p2,p3,p4}  { proof1 : ⊦  rightAngle p1 p2 p3 } { proof2 : ⊦ rightAngle p2 p3 p4 } { proof3 : ⊦ rightAngle p3 p4 p1 } { proof4 : ⊦ rightAngle p4 p1 p2  } ⊦ isRect p1 p2 p3 p4 ❘ # isRectProof 5 6 7 8 ❙
+
+        axiomRectParallelOne : {p1,p2,p3,p4} { proof1 : ⊦ isRect p1 p2 p3 p4 } ⊦ paraL (from p1 to p2) (from p3 to p4) ❙
+
+        axiomRectParallelOneAdjusted : {g1,g2,p1,p2,p3,p4} { proof1 : ⊦ isRect p1 p2 p3 p4 } { proof_p1_on_g1 : ⊦ p1 on g1 } { proof_p2_on_g1 : ⊦ p2 on g1 } { proof_p3_on_g2 : ⊦ p3 on g2 } { proof_p4_on_g2 : ⊦ p4 on g2 } ⊦ paraL g1 g2 ❘ # axiomRectParallel 7 8 9 10 11 ❙
+
+        axiomRectParallelADBC: {g1: line,g2: line,p1: point,p2: point,p3:  point,p4: point} { proof1 : ⊦ isRect p1 p2 p3 p4 } { proof_p1_on_g1 : ⊦ p1 on g1 } { proof_p4_on_g1 : ⊦ p4 on g1 } { proof_p2_on_g2 : ⊦ p2 on g2 } { proof_p3_on_g2 : ⊦ p3 on g2 } ⊦ paraL g1 g2 ❘ # axRectParallelADBC 7 8 9 10 11 ❙
+
+
+
+        // tried to define a rectangle type ❙
+        // TODO maybe delete ❙
+
+        rectangle_type : type ❘ # rect ❙
+
+        mkRectangle :  { A: point , B : point, C : point  , D : point } ( ⊦ isRect A B C D ) ⟶  rect ❘ # mkRect 1 2 3 4 5 ❙
+        cornerA : rect ⟶ point  ❘ # rectA 1 ❙
+        cornerB : rect ⟶ point  ❘ # rectB 1 ❙
+        cornerC : rect ⟶ point  ❘ # rectC 1 ❙
+        cornerD : rect ⟶ point  ❘ # rectD 1 ❙
+        rectSideAD : rect ⟶ line ❘ # rectAD 1 ❙
+        rectSideBC : rect ⟶ line ❘ # rectBC 1 ❙
+
+
+
+        axiomCornerA : {A,B,C,D,p} ⊦ ( cornerA ( mkRectangle A B C D p ) ≐ A ) ❘ role Simplify ❙
+        axiomCornerB : {A,B,C,D,p} ⊦ ( cornerB ( mkRectangle A B C D p ) ≐ B ) ❘ role Simplify ❙
+        axiomCornerC : {A,B,C,D,p} ⊦ ( cornerC ( mkRectangle A B C D p ) ≐ C ) ❘ role Simplify ❙
+        axiomCornerD : {A,B,C,D,p} ⊦ ( cornerD ( mkRectangle A B C D p ) ≐ D ) ❘ role Simplify ❙
+        axiomSideAD : {A,B,C,D,p} ⊦ ( rectSideAD ( mkRectangle A B C D p ) ≐ ( from A to D ) ) ❘ role Simplify ❙
+        axiomSideBC : {A,B,C,D,p} ⊦ ( rectSideBC ( mkRectangle A B C D p ) ≐ ( from B to C ) ) ❘ role Simplify ❙
+
+        rectParalleABCD : {r: rect } ⊦ ( paraL ( from ( cornerA r ) to ( cornerB r ) ) ( from ( cornerC r) to ( cornerD r ) ) ) ❘ # rParalleABCD 1 ❙
+
+       // rect_paralle_AD_BC : {r: rect } ⊦ ( paraL ( from ( corner_A r ) to ( corner_D r ) ) ( from ( corner_B r) to ( corner_C r ) ) ) ❘ # r_paralle_AD_BC 1 ❙
+        rectParalleADBC : {r: rect } ⊦ ( paraL ( rectSideAD r ) ( rectSideBC r ) ) ❘ # rParalleADBC 1 ❙
+
+        rectParallADBCProof2 : {r: rect, ad: line, bc: line, p1 : ⊦ ( rectSideAD r ) ≐ ad , p2 : ⊦ ( rectSideBC r ) ≐ bc } ⊦ paraL ad bc ❘ # parallelADBCProofv2 1 2 3 %I4 %I5  ❙
+
+ ❚
+
+
+theory FrameITTriangles =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITBasics ❙
+
+        // some theories for triangles ❙
+        // TODO maybe delete  ❙
+
+        // triangle rules we need to simplify terms ...  ❙
+        axiomAtriangle : {a,b,c} ⊦ ( _A ( Δ a b c ) ) ≐ a  ❘ role Simplify ❙
+        axiomBtriangle : {a,b,c} ⊦ ( _B ( Δ a b c ) ) ≐ b  ❘ role Simplify ❙
+        axiomCtriangle : {a,b,c} ⊦ ( _C ( Δ a b c ) ) ≐ c  ❘ role Simplify ❙
+
+
+        triangleToPlane2: triangle ⟶ plane ❘ = [t] ( Ppara ( _A t ) (  ( _A  t )  p-p ( _B t )  )  ( ( _A  t ) p-p ( _C t ) ) )  ❘ # Pof2Δ 1 ❙
+
+        // additional triangle rules ❙
+        // Mittelsenkrechten und deren Schnittpunkt ❙
+        trianglePerpendicularBisectorAB3D : triangle ⟶ line ❘ = [t] from ( 0.5 rdotp  ( ( _A t ) p+p ( _B t ) ) ) to ( ( 0.5 rdotp  ( ( _A t ) p+p ( _B t ) ) )  p+p ( ( Pnormal ( Pof2Δ t ) ) Vcross ( ( _B t ) p-p ( _A t ) ) ) ) ❘ # bisecTriAB3D 1 ❙
+        trianglePerpendicularBisectorBC3D : triangle ⟶ line ❘ = [t] from ( 0.5 rdotp  ( ( _B t ) p+p ( _C t ) ) ) to ( ( 0.5 rdotp  ( ( _B t ) p+p ( _C t ) ) )  p+p ( ( Pnormal ( Pof2Δ t ) ) Vcross ( ( _C t ) p-p ( _B t ) ) ) ) ❘ # bisecTriBC3D 1 ❙
+        trianglePerpendicularBisectorCA3D : triangle ⟶ line ❘ = [t] from ( 0.5 rdotp  ( ( _C t ) p+p ( _A t ) ) ) to ( ( 0.5 rdotp  ( ( _C t ) p+p ( _A t ) ) )  p+p ( ( Pnormal ( Pof2Δ t ) ) Vcross ( ( _A t ) p-p ( _C t ) ) ) ) ❘ # bisecTriCA3D 1 ❙
+
+        trianglePerpendicularBisectorIntersectAxiom : { t }  ⊦ colL ( bisecTriAB3D t ) ( bisecTriBC3D t) ❘ # perpBisIntersectAxiomABBC 1  ❙
+        // this cant be the way to calculate it. Because we will not get a point with colV... ff ❙
+        //  triangle_mid_point : triangle ⟶ point ❘ = [t] colLV ( bisec_tri_AB_3d t ) ( bisec_tri_BC_3d t) ( perp_bis_intersect_axiom_AB_BC t )  ❘ # mid_triangle_3d 1  ❙
+
+
+        cramerRuleIntersection : point ⟶  point ⟶ point ⟶ ℝ  ❘ = [c,u,v] ( (-1.0  ⋅  ( c _x ) ⋅  ( v _y ) ) + ( ( c _y ) ⋅  ( v _x ) )  ) /  ( epsi + ( (-1.0  ⋅  ( u _x ) ⋅  ( v _y ) ) + ( ( u _y ) ⋅  ( v _x ) ))  )    ❘ # CramerRuleIntersection 1 2 3 ❙
+         // This function shouldn't be necessary. But due to some weird bug, the server will crash without it. ❙
+        wrapCramerRuleIntersectionForIntersectingBisectors :  line ⟶  line ⟶ ℝ ❘ = [l,h] ( cramerRuleIntersection ( ( from l ) p-p  ( from h )  )   ( directionL l  )   ( directionL h ) ) ❘ # CramerRuleIntersectionLines 1 2  ❙
+
+        // wrap_cramer_rule_intersection_for_intersecting_bisectors :                {l: line,h: line} ( ⊦ colL l h ) ❙
+        intersectionTwoLines : line ⟶ line ⟶  point ❘ = [l,h] ( from l ) p+p ( ( CramerRuleIntersectionLines l h ) rdotp ( directionL l  ) ) ❘ # intersectTwoLinesActualPoint 1 2 ❙
+
+        // ( perp_bis_intersect_axiom_AB_BC t )❙
+        triangleMidPoint : triangle ⟶ point ❘ = [t] intersectTwoLinesActualPoint ( bisecTriAB3D t ) ( bisecTriBC3D t)   ❘ # midTriangle3D 1  ❙
+
+        triangleMidPointWrapper : point ⟶ point ⟶ point ⟶ point ❘ = [p1,p2,p3] midTriangle3D ( Δ A B C )  ❘ # midTriangle3DWrap 1 2 3  ❙
+        // triangle_perpendicular_bisectors_intersection_3d : triangle ⟶ point  ❘ = [t] (  ( 0.5 rdotp  ( ( _A t ) p+p ( _B t ) ) )            ) ❘ # mid_tri_3d 1 ❙
+
+
+
+ ❚
+
+theory FrameITCircle =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITBasics ❙
+
+
+      circleType3D : type ❘ # circle ❙
+      // circle constructor taking a plane ( the circle lies in ) a point (middle) and a real number (radius) ❙
+      circle3D : plane ⟶ point ⟶ ℝ ⟶ circle ❘ # mkCirc3D 1 2 3 ❙
+
+      circleMidPoint : circle ⟶ point ❘ # mid 1 ❙
+      circleRadius : circle ⟶ ℝ  ❘ # radius 1 ❙
+      circlePlane : circle ⟶ plane  ❘ # planeCircle 1 ❙
+
+      axiomMidPoint : {e,p,r} ⊦ mid (mkCirc3D e p r) ≐ p  ❘ role Simplify ❙
+      axiomPlane : {e,p,r} ⊦ planeCircle (mkCirc3D e p r) ≐ e  ❘ role Simplify ❙
+      axiomRadius : {e,p,r} ⊦ radius (mkCirc3D e p r) ≐ r  ❘ role Simplify ❙
+
+      pointOnCircle : circle ⟶  point  ⟶ bool  ❘ = [c,p] ( p VonP ( planeCircle c ) ) ∧ ( leq_real_lit (  d-p ( mid c ) ) ( radius c )  )  ❘ # 2 VonC 1 ❙
+      midAlwaysOnCircle : {c: circle, m: point, p: ⊦ ( mid c ) ≐ m  } ⊦  m VonC  c  ❘ # midOnC 1 2 %I3 ❙
+
+
+      areaCircle : circle  ⟶ ℝ  ❘ = [c] ( real_pow ( radius c) 2.0 ) ⋅ pi_num  ❘ # areaCirc 1 ❙
+      circumCircle : circle ⟶ ℝ ❘ = [c]  2.0 ⋅ ( radius c ) ⋅ pi_num   ❘ # circCirc 1 ❙
+
+      angleCircleLine : circle ⟶ line ⟶ ℝ ❘ = [c,l] radToDegree (  plcalc ( Pnormal ( planeCircle c ) )       ( directionL l )    ) ❘ # ∠cl 1 2 prec 1 ❙
+      orthogonalCircleLine : circle ⟶ line ⟶ bool ❘ # orthogCL 1 2 ❙
+
+      pointsToPlaneNormal : point ⟶ point ⟶ point ⟶ plane ❘ = [p1,p2,p3] Ppn p1 ( normalize ( (p2 p-p p1 ) Vcross ( p3 p-p p1) ) ) ❘ # pToPlane 1 2 3 ❙
+      wrap3EdgePointsToPlaneParametric : point ⟶ point ⟶ point ⟶ plane ❘ = [p1,p2,p3 ] Ppara p1 (p2 p-p p1 ) ( p3 p-p p1) ❘ # pointsToPlanePara 1 2 3 ❙
+
+      parallelCircles: circle ⟶ circle ⟶ bool ❘ # paraCirc 1 2 ❙
+      proofParallelCircles : {c1: circle, c2:circle, ab: line, p1: ⊦ orthogCL c1 ab , p2: ⊦ orthogCL c2 ab   } ⊦ paraCirc c1 c2  ❘ # axParaCirc 1 2 3 4 5 ❙
+
+
+
+ ❚
+
+theory FrameITCone =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITBasics ❙
+  include ?FrameITCircle ❙
+
+
+       circleConeType : type ❘ # cone ❙
+       circleConeOf : circle ⟶ point ⟶ cone ❘ # planeC 1 apex 2 ❙
+       circleConeApex : cone ⟶ point ❘ # coneApex 1 prec 1 ❙
+       circleConePlane : cone ⟶ circle ❘ # conePl 1 prec 1 ❙
+
+       axiomConeApex : {c, p} ⊦ coneApex ( planeC c apex p ) ≐ p  ❘ role Simplify ❙
+       axiomConePlane : {c,p} ⊦ conePl ( planeC c apex p ) ≐ c  ❘ role Simplify ❙
+
+
+       coneHeightProjection : cone ⟶ point ❘ = [c] orthogProjPointToPlane ( planeCircle ( conePl c ) ) ( coneApex c )  ❘ # coneHeightOnBaseProj 1 prec 1 ❙
+       coneHeightLine : cone ⟶ line  ❘ = [c] from ( coneApex c) to ( coneHeightOnBaseProj c ) ❘ # heightLineC 1 prec 1 ❙
+       coneHeightLength : cone ⟶ ℝ ❘ = [c] d- ( coneApex c) ( coneHeightOnBaseProj c )   ❘ # heightLengthC 1 prec 1 ❙
+
+       // distance_apex_plane : cone ⟶ ℝ ❘ = [c] ( do_abs ( <     Pnormal  ( circle_plane ( cone_plane c ) )    , cone_apex c > - <   Pnormal  ( circle_plane ( cone_plane c ) )  ,   Pbase  ( circle_plane ( cone_plane c ) )  > ) ) / ( |   Pnormal  ( circle_plane ( cone_plane c ) )  |  )  ❘ # dist_p_s 1 prec 1 ❙
+       distApexPlane : cone ⟶ ℝ ❘ = [c] distPlP ( circlePlane ( conePl c ) )  ( coneApex c  )  ❘ # distPS 1 prec 1 ❙
+
+       volumeCone : cone ⟶ ℝ ❘ = [c] ( areaCirc ( conePl c) ) ⋅ ( distPS c) / 3.0  ❘ # volCone 1 prec 1 ❙
+       baseAreaCone : cone ⟶ ℝ ❘ = [c] ( areaCirc ( conePl c ) ) ❘ # baseAreaC 1 prec 1 ❙
+
+       // truncated cones  ❙
+
+
+       truncatedConeType : type ❘ # tcone ❙
+       mkTruncatedCone : {c1: circle, c2: circle} ( ⊦ paraCirc c1 c2  ) ⟶ tcone ❘ # mkTcone 1 2 3 ❙
+
+       truncatedConeBase : tcone ⟶ circle ❘ # tconeBase 1   ❙
+       truncatedConeTop : tcone ⟶ circle ❘ # tconeTop 1  ❙
+
+       axiomTruncatedConeBase : {c1, c2, p} ⊦ tconeBase  ( mkTcone c1 c2 p) ≐ c1  ❘ role Simplify ❙
+       axiomTruncatedConeTop : {c1, c2, p} ⊦ tconeTop ( mkTcone c1 c2 p) ≐ c2  ❘ role Simplify ❙
+
+       // truncated_cone_height : tcone ⟶ ℝ  ❘ = [tc] d- ( mid ( tcone_base tc ) ) ( mid ( tcone_top tc ) )   ❘ # tcone_height 1 ❙
+
+        // swapped top and base should be fine tho❙
+       truncatedConeHeight : tcone ⟶ ℝ  ❘ = [tc]  distPlP  ( circlePlane ( tconeBase tc ) ) ( mid ( tconeTop tc ) ) ❘ # tconeHeight 1 ❙
+
+    //   truncatedConeBaseArea : tcone ⟶ ℝ  ❘ = [tc] ( real_pow ( radius ( tconeBase tc ) ) 2.0 ) + ( ( radius ( tconeTop tc ) ) ⋅  ( radius ( tconeBase tc ) ) ) + (  real_pow ( radius ( tconeTop tc ) ) 2.0 )  ❘ # tconeBaseArea 1 ❙
+
+       truncatedConeArea : tcone ⟶ ℝ  ❘ = [tc]  ( areaCirc ( tconeBase tc ) )  + ( ( ( radius ( tconeTop tc ) ) ⋅  ( radius ( tconeBase tc ) ) ) ⋅ pi_num ) + ( areaCirc ( tconeTop tc ) )  ❘ # tconeArea 1 ❙
+
+
+       truncatedConeVolume : tcone ⟶ ℝ  ❘ = [tc]   ( 1.0 / 3.0 ) ⋅ (tconeHeight tc)   ⋅ ( tconeArea tc )     ❘ # tconeVol 1 ❙
+
+     //   truncatedConeVolume : tcone ⟶ ℝ  ❘ = [tc] ( ( ( 1.0 / 3.0 ) ⋅ pi_num )  ⋅ (tconeHeight tc) )  ⋅ (                  ( real_pow ( radius ( tconeBase tc ) ) 2.0 ) +           (       ( radius ( tconeTop tc ) ) ⋅  ( radius ( tconeBase tc ) )      )                  + (  real_pow ( radius ( tconeTop tc ) ) 2.0 )         )   ❘ # tconeVol 1 ❙
+
+
+ ❚
+
+theory FrameITCylinder =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITBasics ❙
+  include ?FrameITCircle ❙
+
+
+         cylinderType : type ❘ # cyl ❙
+         mkCylinder : {c1: circle, c2: circle} ( ⊦ paraCirc c1 c2  ) ⟶ cyl ❘ # mkCyl 1 2 3 ❙
+         cylinderBase : cyl ⟶ circle ❘ # cylBase 1   ❙
+         cylinderTop : cyl ⟶ circle ❘ # cylTop 1  ❙
+
+         axCylBase : {c1, c2, p} ⊦ cylBase  ( mkCyl c1 c2 p) ≐ c1  ❘ role Simplify ❙
+         axCylTop : {c1, c2, p} ⊦ cylTop ( mkCyl c1 c2 p) ≐ c2  ❘ role Simplify ❙
+
+         cylinderArea :  cyl ⟶  ℝ  ❘ = [c] areaCirc ( cylBase c)  ❘ # cylArea 1 prec 1 ❙
+         cylinderHeight : cyl ⟶ ℝ ❘ = [c] d- ( mid ( cylBase c) ) ( mid ( cylTop c) )   ❘ # cylHeight 1 prec 1 ❙
+
+         cylinderVolume : cyl ⟶ ℝ  ❘ = [c] (cylHeight c) ⋅ ( cylArea c ) ❘ # cylVol 1 ❙
+
+
+ ❚
+
+theory FrameITTheories =
+  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+  include ?FrameITTriangles ❙
+  include ?FrameITRectangles ❙
+  include ?FrameITCircle ❙
+  include ?FrameITCone ❙
+  include ?FrameITCylinder ❙
+
+
+       //      intersection_two_lines_test : line ⟶ line ⟶  ℝ ❘ = [l,h]  ( cramer_rule_intersection ( ( from l ) p-p  (from h)  )   ( direction_l l  )   ( direction_l h ) )  ❘ # intersect_two_lines_actual_point_test 1 2 ❙
+       //     wrap_intersection_test : line ⟶ line ⟶  point ❘ = [l,h]  ( ( cramer_rule_intersection ( ( from l ) p-p  ( from h )  )   ( direction_l l  )   ( direction_l h ) ) rdotp ( direction_l l  ) ) ❘ # intersect_two_lines_wrap 1 2 ❙
+       //      wrap_intersection_test2 : line ⟶ line ⟶  ℝ  ❘ = [l,h]   ( cramer_rule_intersection ( ( from l ) p-p  ( from h )  )   ( direction_l l  )   ( direction_l h ) )   ❘ # intersect_two_lines_wrap2 1 2 ❙
+       //     wrap_wrap : line ⟶ line ⟶  point  ❘ = [l,h] ( intersect_two_lines_wrap2 l h ) rdotp ( direction_l l  ) ❘ # wrap_wrap_losing_mind 1 2 ❙
+
+       //      wrap_wrapv2 : point ⟶  line ⟶ line ⟶  point  ❘ = [A,l,h]  (      (   do_the_root ( 0.5 )  ) rdotp ( direction_l l ) ) ❘ # wrap_wrap_losing_mindv2 1 2 3 ❙
+       // fast_equal : ℝ ⟶ ℝ ⟶ bool ❘ = [a,b] | a p-p b | ❙
+       // ❘ = [A,B] lineDirection A ∥ lineDirection B ❙
+       //  parallelo: line ⟶ line ⟶ bool  ❘ # paraLL 1 2 ❙
+       //  para_axio : { a: line , b: line } ⊦ paraLL a b ❘ # cheat 1 2  ❙
+
+
+
+                // defining circle over 2 points. One for the center one for the edge❙
+              //  circleOf : point ⟶ point ⟶ circle ❘ # mid 1 edge 2 ❙
+              //  midpoint : circle ⟶ point ❘ # mid 1 prec 1 ❙
+              //  edgepoint : circle ⟶ point ❘ # edge 1 prec 1 ❙
+              //  axiom_midpoint : {p1,p2} ⊦ mid (mid p1 edge p2) ≐ p1  ❘ role ForwardRule ❙
+              //  axiom_edgepoint : {p1,p2} ⊦ edge (mid p1 edge p2) ≐ p2  ❘ role ForwardRule ❙
+
+              //  radius_circle : circle ⟶ ℝ ❘ = [c] d- ( mid c ) (edge c) ❘ # radius_circle 1 ❙
+              //  circum_circle : circle ⟶ ℝ ❘ = [c] ((d- ( mid c ) (edge c)) + (d- ( mid c ) (edge c))) ⋅ pi_num   ❘ # circ_circ 1 ❙
+
+                // partial circlce circumference. x should be used in %   ❙
+            //    partial_circum_circle : circle ⟶ ℝ ⟶ ℝ  ❘ = [c,x] ((d- ( mid c ) (edge c)) + (d- ( mid c ) (edge c))) ⋅ pi_num ⋅ x   ❘ # partial_circ_circ 1 ❙
+
+           //     area_circle : circle ⟶ ℝ ❘ = [c] ((d- ( mid c ) (edge c)) ⋅  (d- ( mid c ) (edge c))) ⋅ pi_num   ❘ # area_circ 1 ❙
+
+        //  use_actual_scp : point ⟶ ℝ  ❘  = [a] ( < a , a > ) ❘ # do_actual_scp 1 ❙
+
+
+      makeCircleOf3EdgePoints : point ⟶ point ⟶ point ⟶ circle  ❘ = [p1,p2,p3 ] mkCirc3D (  Ppara p1 (p2 p-p p1) ( p3 p-p p1) ) ( midTriangle3D ( Δ p1 p2 p3 ) ) ( d- ( midTriangle3D ( Δ p1 p2 p3 ) ) p1 )   ❘ # mkCirc3P3D 1 2 3 ❙
+
+
+
+
+   ❚
+
+
+
+
+
 /T The meta theory to use for situation theories, scroll problem, and scroll solution theories ❚
 theory FrameworldMeta =
   include ?MetaAnnotations ❙
+  include ?FrameITTheories ❙
+ // include ☞http://mathhub.info/MitM/core/arithmetics?RealArithmetics ❙
 
-  include ☞http://gl.mathhub.info/MMT/LFX/Sigma?LFSigma ❙
 
-  include ☞http://mathhub.info/MitM/Foundation?Strings ❙
+ // include ☞http://gl.mathhub.info/MMT/LFX/Sigma?LFSigma ❙
+
+//  include ☞http://mathhub.info/MitM/Foundation?Strings ❙
   include ☞http://mathhub.info/MitM/Foundation?Math ❙
 
-  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
-  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+//  include ☞http://mathhub.info/MitM/core/geometry?3DGeometry ❙
+//  include ☞http://mathhub.info/MitM/core/geometry?Planes ❙
+
+
+
 ❚
diff --git a/source/Scrolls/MiscScrolls.mmt b/source/Scrolls/MiscScrolls.mmt
index 19a535d..3e52ad0 100644
--- a/source/Scrolls/MiscScrolls.mmt
+++ b/source/Scrolls/MiscScrolls.mmt
@@ -1,4 +1,4 @@
-/T Miscellaneous scrolls for playing around/testing that don't have a good home yet ❚
+/T Miscellaneous scrolls for playing around/testing that don't have a good home yet  ❚
 
 namespace http://mathhub.info/FrameIT/frameworld ❚
 fixmeta ?FrameworldMeta ❚
diff --git a/source/Scrolls/SupplementaryAngles.mmt b/source/Scrolls/SupplementaryAngles.mmt
index e6e3184..58ccc18 100644
--- a/source/Scrolls/SupplementaryAngles.mmt
+++ b/source/Scrolls/SupplementaryAngles.mmt
@@ -32,8 +32,8 @@ theory SupplementaryAngles =
     ❚
 
     theory Solution =
-        meta ?MetaAnnotations?label "SupplementaryAngles" ❙
-        meta ?MetaAnnotations?description "Supplementary angles add up to 180 degree " ❙
+        meta ?MetaAnnotations?label "SupplementaryAngles"   ❙
+        meta ?MetaAnnotations?description s"Supplementary angles add up to 180 degree " ❙
 
         include ?SupplementaryAngles/Problem ❙
 
diff --git a/source/Scrolls/TriangleScrolls.mmt b/source/Scrolls/TriangleScrolls.mmt
index 253bb55..692cd35 100644
--- a/source/Scrolls/TriangleScrolls.mmt
+++ b/source/Scrolls/TriangleScrolls.mmt
@@ -25,8 +25,9 @@ theory TriangleProblem =
 theory TriangleProblem_RightAngleAtC =
     include ?TriangleProblem ❙
     rightAngleC
-        : ⊦ ( ∠ B,C,A ) ≐ 90.0 ❘
-        meta ?MetaAnnotations?label s"⊾${lverb C}" ❘
+       // : ⊦ ( ∠ B,C,A ) ≐ 90.0 ❘
+        : ⊦ (  ∠r B C A )  ❘
+        meta ?MetaAnnotations?label s"⊾${lverb C}"  ❘
         meta ?MetaAnnotations?description s"${lverb A C} ⟂ ${lverb B C}: right angle at ${lverb C} as enclosed by legs ${lverb A C} and ${lverb B C}."
     ❙
 ❚
@@ -88,7 +89,7 @@ theory OppositeLen =
             meta ?MetaAnnotations?description s"Length of leg ${lverb B C}"
         ❙
 
-        include ?TriangleProblem_AngleAtB ❙
+        include ?TriangleProblem_AngleAtB   ❙
     ❚
     
     theory Solution =
@@ -107,26 +108,28 @@ theory OppositeLen =
     ❚
 ❚
 
-// Doesn't typecheck, not sure why ❚
-// theory Pythagoras =
+ // Doesn't typecheck, not sure why ❚
+ theory Pythagoras =
     meta ?MetaAnnotations?problemTheory ?Pythagoras/Problem ❙
     meta ?MetaAnnotations?solutionTheory ?Pythagoras/Solution ❙
 
     theory Problem =
-        include ?TriangleScroll_RightAngledProblem ❙
-    
+    //    include ?TriangleScroll_RightAngledProblem ❙
+        include ?TriangleProblem_RightAngleAtC ❙
         distanceAC
              : Σ x:ℝ. ⊦ (d- A C) ≐ x ❘
+             meta ?MetaAnnotations?label s"${lverb A C}" ❘
              meta ?MetaAnnotations?description "Length of leg AC"
         ❙
 
         distanceBC
              : Σ x:ℝ. ⊦ (d- B C) ≐ x ❘
+             meta ?MetaAnnotations?label s"${lverb B C}" ❘
              meta ?MetaAnnotations?description "Length of leg BC"
         ❙
     ❚
     
-    // theory Solution =
+     theory Solution =
         include ?Pythagoras/Problem ❙
 
         meta ?MetaAnnotations?label "Pythagoras" ❙
@@ -134,9 +137,10 @@ theory OppositeLen =
 
         deducedHypotenuse
             : Σ x:ℝ. ⊦ (d- A B) ≐ x ❘
-            = ⟨√ ((πl distanceAC) ⋅ (πl distanceAC) + (πl distanceBC) ⋅ (πl distanceBC)),
+            = ⟨ doTheRoot (  (πl distanceAC) ⋅ (πl distanceAC) + (πl distanceBC) ⋅ (πl distanceBC)),
                sketch "By Pythagora's theorem"⟩ ❘
+            meta ?MetaAnnotations?label s"${lverb B A}" ❘
             meta ?MetaAnnotations?description "Deduced length of hypotenuse AB"
         ❙
     ❚
-// ❚
+ ❚
-- 
GitLab