From 4f86e71e104029c699940ce997b4370aab458d98 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Mon, 6 Jan 2025 15:34:29 +0000 Subject: [PATCH] didn't finish getting IndexTree running again --- developer/bash/Build | 2 - .../example/CountingNumber$BaseState.class | Bin 635 -> 0 bytes developer/example/CountingNumber$State.class | Bin 468 -> 0 bytes .../CountingNumber$State_Infinite.class | Bin 1113 -> 0 bytes .../CountingNumber$State_InfiniteRight.class | Bin 901 -> 0 bytes .../CountingNumber$State_InterimSegment.class | Bin 1155 -> 0 bytes .../CountingNumber$State_Leftmost.class | Bin 1240 -> 0 bytes .../example/CountingNumber$State_Null.class | Bin 998 -> 0 bytes .../CountingNumber$State_Rightmost.class | Bin 1017 -> 0 bytes .../CountingNumber$State_Segment.class | Bin 1375 -> 0 bytes developer/example/CountingNumber.class | Bin 1896 -> 0 bytes developer/example/CountingNumber.java | 13 +- developer/example/Example_* | 2 - .../example/Example_CountingNumber_0.class | Bin 2042 -> 0 bytes developer/example/Example_IndexTree_4x4.java | 43 ++++++ .../Example_IndexTree_Diagonal_SRM.class | Bin 1852 -> 0 bytes developer/example/Example_SRMI_Array.class | Bin 2389 -> 0 bytes developer/example/Example_SRM_List.class | Bin 2515 -> 0 bytes developer/example/Example_SRM_List.java | 2 +- .../example/IndexTree_Diagonal_SRM.class | Bin 4313 -> 0 bytes .../Ariadne_IndexTree_Child_SRM.java" | 41 ++++-- .../Ariadne_IndexTree_Node.java" | 16 +-- .../javac\360\237\226\211/Ariadne_Node.java" | 4 +- .../javac\360\237\226\211/Ariadne_SRM.java" | 3 +- .../javac\360\237\226\211/Ariadne_SRMI.java" | 50 +++++-- .../Ariadne_SRMI_Array.java" | 130 ++++++++++------- .../Ariadne_SRM_List.java" | 134 ++++++++++-------- 27 files changed, 270 insertions(+), 170 deletions(-) delete mode 100755 developer/bash/Build delete mode 100644 developer/example/CountingNumber$BaseState.class delete mode 100644 developer/example/CountingNumber$State.class delete mode 100644 developer/example/CountingNumber$State_Infinite.class delete mode 100644 developer/example/CountingNumber$State_InfiniteRight.class delete mode 100644 developer/example/CountingNumber$State_InterimSegment.class delete mode 100644 developer/example/CountingNumber$State_Leftmost.class delete mode 100644 developer/example/CountingNumber$State_Null.class delete mode 100644 developer/example/CountingNumber$State_Rightmost.class delete mode 100644 developer/example/CountingNumber$State_Segment.class delete mode 100644 developer/example/CountingNumber.class delete mode 100755 developer/example/Example_* delete mode 100644 developer/example/Example_CountingNumber_0.class create mode 100644 developer/example/Example_IndexTree_4x4.java delete mode 100644 developer/example/Example_IndexTree_Diagonal_SRM.class delete mode 100644 developer/example/Example_SRMI_Array.class delete mode 100644 developer/example/Example_SRM_List.class delete mode 100644 developer/example/IndexTree_Diagonal_SRM.class diff --git a/developer/bash/Build b/developer/bash/Build deleted file mode 100755 index 2a18026..0000000 --- a/developer/bash/Build +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -java com.ReasoningTechnology."Ariadne".Build diff --git a/developer/example/CountingNumber$BaseState.class b/developer/example/CountingNumber$BaseState.class deleted file mode 100644 index 9f5177a70541e6bbb69fa088498bc6bd5a132b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmZ8e+fKqj5IqY^D;K${Al@+H0W<;MAw(rHniONi_-Yo|z#7;l?c#s=Wa5J#;71vU zf?90TnVy|FGiPQ$zurFpba9+O1W_A2g%~V`+=ZvaNXw`GeXrU#!bk?It+X;7hHT9V zgGAD+HjrNRQuuPkEYzI!AaNLY*Bw#WjH9$%avsEBN+)^89g69r zAPIz5huln*&rtqX>90+Tg!QDExT8DaiJ3Igqx_h^6u)1qhecO=VmP6`fk0x$`)aI( znS0d!G@RIWp2dr3&V-pXFV*-)8#$IJi!Af6;^fsw5vMK%@uTi8UJP=>x31+!UB204Npd9o1{uod`i>;%4u YUGil_DOScl=Om(t10KO4;mY~$H_xt@@Bjb+ diff --git a/developer/example/CountingNumber$State.class b/developer/example/CountingNumber$State.class deleted file mode 100644 index a34a9fc69db8df732e52b4cc74a4aa9b0364b3e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmZ8d%TB^T6g^X>6l;YF2tGD0T!1n10T?$;j3$UC7#42KP$n>>Ov!Zczg(HP@B{oP z<85Jslgv4D&wbC&@7Fhg2xmSVlsxbNF3JqyLcEJ!BJ`~HG+D^lGL&zWR`!;m)ai~r zR2Z63y4F_d*>Js_NOLi=!b*llXRzz&cgGAoN~h$k4V0Ff_!lurNU0CfSR`X%RBmrY zZs#gvX#K0SY0;E%7XcVyJW*gz8B)1f zkbEnO1eOdWO~qiNT}QN=uj|=5@APfwcd-$x zv2Qi3gFS{!?Qdok2EFQbslQ7#ay{$)0Y4m&X1V5e_@Kop0?A{guExNyHPgSDaS?2? zE@a>BzTzGq3Mo8tigdWs_5`P@L%IB$vBH<)h_X0iq;D~VeKmZBja>d;na7&$$m@uG zTVxiDfFd-6FJHL6WH2qq5ngq`eP2*AiP;5jYf?Hs_8 zNwvIm3zLSnkLWd$c8F`llVX!=J*CqM=hAleuNDEx=#(Ol1B5KG0ZA{4|-7fz@EIwx2>M(PXJPO zmRL}xq@^BB0H)7Vxr5TU2*p(q`Y|>>&6M$B!dD;rhENWywsAM$3EU%|p|mvmr}v3Q Ph(FLZ`VTvJ^lbeXm&V{> diff --git a/developer/example/CountingNumber$State_InfiniteRight.class b/developer/example/CountingNumber$State_InfiniteRight.class deleted file mode 100644 index 8e706ffbdf4c7000fecaf0d80de2181d476d3d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcma)4OK;Oa5dPM7;>2;&G>`IrwE^-dEf-Ef9I!w{3ZbGX2QJYjS)4_QjqDA-iVLU( zi32}?ABC88ERj?`aM+ohZ}z3rc;PBgGVq71q7bUn1_3h)e8u6cMwPy^q)@6bA zsE9IlZB$(Bp~_I+mSA9#VSn(Ef95AkuI4AtrQZ*f@I}-sqK<}*eHT|WwVri}!F)4( z;n2-%F0SJS#e6nnIBsQYwzFXd%L`|MVRs+{v2NBoK3Nb_9fVW981YEzI0Y@;GKS`* zdb9f5qrSctY97u`dBm4OiHMkmDG$bx;FPM_YQIl`Scy-R%Gwb=VsOsFRWubZrOu_c z-MwSo5uy%7tX_pNeWlwE0ugx&9>;=Ssb&6mE(cg$8bs&4ZC0<2G40*_UvKB!PRha&$+leuM)?g(e9EhkUz4FzZrD1hX4Qo diff --git a/developer/example/CountingNumber$State_InterimSegment.class b/developer/example/CountingNumber$State_InterimSegment.class deleted file mode 100644 index 13e4d7ecb3a3f41cc63b560b61326cbb380f2928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcma)4+fEZv6kTUpn6?b1LP5bB3TRu9;sq}Z`e36GQ^0^h!3T0^PujuG6lbQ!_$U5@ zFB&e1CVqe)Wn8D77)tu!!`b`nea>F{wtoNl@e4o+kCQMEGZDAYhkk*nQnTfSj#pc2 zxqHf=-V9}^c2~Sm`Hs7(YOeA^f&Q@W1k(!wnR54kJB0+2CQ=p#U5(xDc?>ai%}C}7S8L? zY_CrOvGuiQDgGR{FoBD-Wwk0WpX-g8@9oxAUbb*W=P_OR$#Gk*2A#BU4cFPC`p}Y% zKwvb&ZAhuCFAg7|Z2%B1aIa1J=?}^s}%*(y8)(RUSmCQ=83}Us2B;UEE0b zH0Jg42(_ky@CBzKV6Awb@=FaF1d3U+y}8-fcC-7=^S^0gl1xvK^dghdT<0xL4{1tS zptVSCP!AMlk01)OCosR!G%!oq4?+17bCg#5K7d=8r&Z+X<0Dal1>EMNMw_G7Ax8YG zmZv~gPk|T_2yo{=A~$+Q-o?Er=Vx}LbJ~SNHo$X;!S5J3#)TscMs`PCI>yy67}ds4 zOl@m@f|+C7&>hFx#SRk;ctc9RCHuCqgmSgv&YbU@`Tgg|F93OL7|;;Y5x3BVZib0`z2QpR zt?V|OW8uvmNG`=uLA;et-IomAvTFNtOAN_E>&cvn9vC`I3%#%yhFiBoB8p$JU0bd( z45iu$(nSLa^y^4k7{DMyqLqSy*$ktF6aIl`9WJZcO}nz~N>LGB&cHB6bc|ZKqC$r| z9b$;>?Y=PS4PQ9K&R5X_3sY>`FDz*~Bailk(iQkV2Zl@P$0`RWBIE+m#EW zbLpavd4}1J)JiAMb`C_v5w0|mfx!^Z*ULoMU$9*f_WLzIt`Ra=sF!%H$UR&65g1pk zXP9d1Tib}_Xf$?&tk%o>+~ba*v=r1+;_i_rIH?^=r4J*(m*SLe5gNja41F|krFT30 zG)ih7)Eiz&Y}x8sL#?GPswNZFuJGl{U^=aB*A-sA#(iH<)eXz{OVy+pEniA0M?RQCTz<~l|$<586J6IG;g?q|-Z z0Q%0*_Z>q`jGdz|@BZqSf>ZF zL9@JxRXoQYwl3XkKdR_4og;l$2PpCh{cCuNTwoJeAv+VOpCAU+l?2w}8oiSQo{^s+ HyAJIyt)mOZ diff --git a/developer/example/CountingNumber$State_Null.class b/developer/example/CountingNumber$State_Null.class deleted file mode 100644 index fdba8e46851da25e92b38769c25b171f44cdd4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 998 zcma)5-*3`T6#i~06gu1xoDMb>6&Y-k?O_ilEJh_7O$r)uB>F<`;5ur`Eom>tKgtL7 zWr-&G?jL15x8PP5m)NBD{OCE~`OcTyU%$Wo0MJ6ihJl0yGm9ir3~McaDwQjbJJa!z z2r7?xD7uO(!H_y|rK=t=6l%_5RkPl+kY?C?&p+^8kIUoTLm5sd6F*R5_+lagu3TR} z`8W_0?WAEdY_zzPzAA@GOv>*9e_ZYyIu3<2j96L7YD$+FR%^}~ZdV0Fjs|A1f}DlR zS>#b5-j4#852fgLU$rZ3J{Y<3FK<)hGL)Q)N}3i{8H$TLRidr?ovG(Bm@R)u3amJU zIuqtKKk_J(cl-hOdYpz+JWrZxU?Tz`vmL@ zc?PcO7>v$)Sfeu=`6(1pqG+AoBz?@~$l1Vk`lx|+$m$j&@kyUCki8g)F$V!|{72{h zKRa*IGP9ZcNJKO3@37wFGbdR3d2aUo7=nE|`xb7`5gKGQYx66XKcDM8i1nKD-URMM gRTbQgY!x-KCE{VAin?jgFR_K4heeXRO7a zG|@!g{iBStfC#6(2Hw_1s~ue*EI7SvzesiIjzeW^{#N&9451Z77epQNI|HNLjd= zKpGjM{ls&4SBiF{Udz{br|-x=v}1EvhHUk+yt0KghVA9K@{`Hib*I-?L)TXfX2tE& zDw0*gpKhqh&j%DqSKSUDv^dcqe-<=V-|-o8fprC8%M7WSP<^-il6!n8l<=r3+TpV8 z3EpK0*~QnhfZi6-m@1057{dPae75Z3<>N8L8}8Wai06)`n^_*Tq&G|*PK2+HXiy8g z46DmI42feYg;yDH-xowMHoqGd_8C?dR!h0dhmZ_x5;i>IG3X}WqOuakG5w2nvi z_AkIblV#wB_Q6QDuud{Du_M?(mb^`R!}KwgB4Z0T>7xcZAgxOb^P`pvAZH68#ta15 z{w#&u`xWxz^-aSTbzx>h7{j=V2@O}I=~zD{ z2LEbz!9*>_6a22gc}kkF7s ziXmhP`@pfHQY88)%PKD7u8OpV45(R?UceHsHgw~6Gt^4HP|BBg8K!%XyjocXCD*PA z3bsg=-O1SHhfR`<7TZ^fx7_3{VGEONf>mxD zn1WMJ{E6hgE3j;FOhI%R$@drrX_~6kK2_GCQg&HW(rvF+;%lV9>l3#vE;7 zkQS0fqjC@F79a_264CqgdQ99$Jd#>C2TLt{h5Ch_K0F{g07i5L4~c5dJ%UGM0z9D; zpie>tmhhB5CE6l!Y2s5pN$LT~c|d$F2=MGbEDL=tpCjw~Jb~Zwxs*Di1n8V$@D#BN zOrB%VeRtW+1+IU@$X~si7q}y{^*e!%LZSN>ZCeoulqkn-kLx8j=w(Nr$pXBqUDN;+l*7DvOv{B_ytNXIjf zgrV}xn|MYgNd%Z~u&v{QKzb~|j@>%)I$f6#3jxHUi6sRw9YFL>9CSP@urwB=;(Vp( zk_OTN#&af~_iGI>>~KGh6FxVxAYgV3wd(Dx;D(7;6@<2T zduQ9A;dK*l;7!IiyPXGCPwsZv0NL>;%2iavnu)i-eu>Gi`&Qc(m_=xq@x@x!* zvCG{<22EFOM+R-ZYaO&{Nmjc}tKG0T64XPZ<{jBAZ02-_v)c&RyuW2VIPvUQ_lc7I zH^$B)Bw5~QYw>uglbVM)6j=E`H8R|&cl*7jyko11W=GLiRdaFZYtr?$q#9^f$H%03 z)NOgwa;49ffLU=I*(9??0KLwb}*Y(-k$1w;&* zpXXuzSBU%*=yxf^2QVoom7E%2j`D(%FAi{ta$3ok2gu|fV|jplzA(T`g+DNr&;NqV zF<$-&Hwuq&{TQ$P7#L08c$voKW0ZafjF)`lqzam&_=xpPpu*=mruj_pWan6G9E&h` zcTD0srcmPEP1bXZb#G%9cag#&=HOr+-|;s49vAT*qvwOF@II>4fQLSN0$Y@m(Ees{ zL`OpB6eE?=nWaXP&k3&a9D;uFCrGGL-~O3O#6Mch-&pcfn1NIHS`@$sAwY%z>gNN9 z5I_t8Wa!9258aDgRlX>h$e+%2WhhrPC}(Da!5^LpKE~$h;EA)rWHsoV9n_gKf?a&X wRb5YM@|Wayt$|Nyxys%nLu5FDJ^nw_H0~zwIpqbeUvN!x-RIii`lS~62X=;-MF0Q* diff --git a/developer/example/CountingNumber.java b/developer/example/CountingNumber.java index c9717ee..0536304 100644 --- a/developer/example/CountingNumber.java +++ b/developer/example/CountingNumber.java @@ -1,3 +1,4 @@ +import com.ReasoningTechnology.Ariadne.Ariadne_SRM; import java.math.BigInteger; public class CountingNumber extends Ariadne_SRM{ @@ -38,11 +39,7 @@ public class CountingNumber extends Ariadne_SRM{ return i; } - private abstract class BaseState extends State{ - abstract MachineState state(); - } - - private class State_Null extends BaseState{ + private class State_Null extends State{ @Override boolean can_read(){ return false; @@ -61,7 +58,7 @@ public class CountingNumber extends Ariadne_SRM{ } } - private class State_Segment extends BaseState{ + private class State_Segment extends State{ @Override boolean can_read(){ return true; @@ -83,7 +80,7 @@ public class CountingNumber extends Ariadne_SRM{ } } - private class State_Rightmost extends BaseState{ + private class State_Rightmost extends State{ @Override boolean can_read(){ return true; @@ -102,7 +99,7 @@ public class CountingNumber extends Ariadne_SRM{ } } - private class State_Infinite extends BaseState{ + private class State_Infinite extends State{ @Override boolean can_read(){ return true; diff --git a/developer/example/Example_* b/developer/example/Example_* deleted file mode 100755 index 3c6f542..0000000 --- a/developer/example/Example_* +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -java Example_* diff --git a/developer/example/Example_CountingNumber_0.class b/developer/example/Example_CountingNumber_0.class deleted file mode 100644 index 44b2030f98d571488a2a16ead3ba60991256cac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2042 zcmaJ?T~``c6x~;l0UQUg5Cu$?6st55Xx%POOshA zkYUB|+lDC%(iXgt@MDDGaz+Z9OT(;2WX-nP)mkKJwM}Os-)?LRyR{lb2xA(;I>s@< zFy1E^gVt1`>n3H3y6GI=l#5~~Vp~B>VOqnCj#RmBI^IW=!RykRq4ZAa4K8c(b)%XwrKk!!5yUb+&~Qb^RjhQk!Kt27KIiqe z*nG;c)G3bJ)WmVvPQAk9hif`M#77L%4ZbUqmRaWVks)jJM0%LAbt>42(!JuVT0YV7 zsnXq%nY__di=XNET=~qa7L6a9pu&K6U7hN-h;oI*-R8XLq&)yxn*R_nClv23?} zs0A5(so^UfS>&kush@bGSr?^lSm_!=!0~BG3Ucar^mH88r<;n!eTFb~ygNdIs3olm zQ5(&Y^<487`F5RF!da`#>sy>0O7r7IudEr=sk!V~j40w@S$%N~EJGL33iT!(CX<(U zbG&&Hw!sZTPDP*ewmY^(B)MIswBvoY8G;3?ZI?ybP^{0NMQla2kjSiCmTXCzH*-SP ztV+v|GQ(K1ZQH_>5m$lL2pjc51o0GA4K-z4gJHojfn#fOjI}G`u18%jr+Hag_8!A8 zou9-p(9Ly^o0Ym~Eo3cgx7|$imfEq>^9fwHrdc9!Kk;0&7OjFp& zI&ZZ^OGBMusN-Cr{mvsugT=7eQ**ykG(2Ot@c&Rc>)pC>k<2|n2Lj*$xdlENzouE7 z?u_n(%fErWqK5%IpiylrXn{uE1)zwB&WyeeTA`Pjm(VKc{vovR@N0}NzsBSXcwfiL0KqUif?{@T)=(EA-Ed9lZPV z07EL_8U<5~Jr3hE#^~8ce=|S*YJ!*}-d8Y;>lnc*Msb7oHxMQnCh!E4sL7B39_y#tzNG Rv>qYOjoY)tx(OSz{{r0+2XX)a diff --git a/developer/example/Example_IndexTree_4x4.java b/developer/example/Example_IndexTree_4x4.java new file mode 100644 index 0000000..3d425c2 --- /dev/null +++ b/developer/example/Example_IndexTree_4x4.java @@ -0,0 +1,43 @@ + +import com.ReasoningTechnology.Ariadne.Ariadne_SRM; +import com.ReasoningTechnology.Ariadne.Ariadne_SRM_List; + +import java.math.BigInteger; + +public class Example_IndexTree_4x4{ + + public static void main(String[] args){ + + Ariadne_IndexTree_Graph graph = new Ariadne_IndexTree_Graph(); + Ariadne_SRM root = graph.start(); + + Ariadne_IndexTree_Node label; + Ariadne_IndexTree_Node node; + Ariadne_SRM child_srm; + + // descend 3 more levels + label = root.read(); + System.out.println(label); + int i = 1; + do{ + node = graph.lookup(label); + child_srm = node.neighbor(); + label = child_srm.read(); + System.out.println(label); + if(i == 3) break; + i++; + }while(true); + + // move across three more nodes + i = 1; + do{ + child_srm.step(); + label = child_srm.read(); + System.out.println(label); + if(i == 3) break; + i++; + }while(true); + + } +} + diff --git a/developer/example/Example_IndexTree_Diagonal_SRM.class b/developer/example/Example_IndexTree_Diagonal_SRM.class deleted file mode 100644 index 7f9b08e0649ece48dbe8210813346b0f3c1b17b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1852 zcmaJ?T~kv>7=D(7oDdFR1M+1GkuQO$X|4StYAYx;ZBT0{)KVIkWE+m0oRc{@apb-~ zqSK2`#~W|8)4`6N;Rp0T^s4`&GuA$v6BS5GGTGht-FKh&c|UgZ=fBVQ0W3kr(1DPF zu!&AY1Ww$S4`kYwPC0#R>%J=b0+CCWWBFGELbG#gU5KK~K+Hrp%tPk+-I}i|v~ue_ zbTZcfvfT7-&vN{{?Z56`_yk#J6 zq8|eS{cUgrjH*Vp9Xgr~JT)lO4RJGbYcULB$iT3P5sV59zV=kOX34VaNV`Cn0^y3> zQ39j0bGh~=nK;vwF!46V1ctQrlIs+uzi#>4T-AK(_%+QUJJ-rXvq+jatrHt&cB)ZK z3Uq928ki>9n^Xt97weW?QeG5i1jI%RQ<&3L8Hgc;vj)zYIFGczK;v9R`rGM6tDJRw zRaTxr)OQ0IS}>fW;2Dkgu89kHk0q7Ws&YyK=h|hjLYiH`ed(2n)Zb>Com%tQufzXWd4ZU&S)u6G9d@+H3iPmbi#sc_+9Yaz?|Ljm z!IoRf7D&CKailnzHsv6oCD7SCIn*S0^q@dj;KEm|)<{c`uPQ^XdAIHr)v~3tI(dBJ z&g6VzUN7rA8nAnP4H#>0e>Qd-l-xJ0IE5 zWlD+gz2`UuP?w1Og2-d^{Lmp%dl-NG@^9@X)NnIHIKbco9-|u*z5FIH#7jJkGkhmg z8071Axo_>9DFP~VNv3-lTo6eqg~n#Jc$uD><8F3<1( zgh+hi$sd@y8=rZGSu#${??1w1YCdsc5A%C?XPt_0=@DY7_(d&}`{S2?rQ#oGfl++) z8cC7nf0e*iQ1qCpj;oWlzBaa!KQEwa?~dl8Pl mK(~P@G5!zB6vAz4JMbm$aE{XIEB^A>pcLckTYQIm82JwtRn6c4 diff --git a/developer/example/Example_SRMI_Array.class b/developer/example/Example_SRMI_Array.class deleted file mode 100644 index b66274fa8b64c3165e0efa70b69627bc274f5d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2389 zcmbVNT~`}b6x|mB6Vjp3@Kq|Uw9*kS`<1D9a z9Q~Z`C6L5`f;afo?)gJ97i6wJV3fR!{td=Q;%~e&(BPTqQJu6mPz0|MipF8 z@fyYiZWQfGdR>>UZ84I9Ufi*4(=H#-y&+4M9?e_YdVX~)I8z{2k$bwpa_Xe>$z1#H zGCjD2*AsDZXJHGR<}87?@s5HUD&EDcz(7#j=Ij|_)yKlL2v1{(k=G5s+_zM` zhueh5v>A+Hb91}!p8NT*S#IP)>U@cbVfyT%|b+&RtW#K>Qr2Kj!GG!An2KQ4KdBj|W`!U=0r`p|QA#7&h8XRa)f)4Zt17Les5K@y77~U!B1ie362Sjp_lph^TjxaB@8lwAxI3f zlP};~zWCp9ho9(pm<&F_I#*+O3JnFOdKo4@#RidkMENl1Q1{ufZj-XlsZ-JM2bL5( xR&f3by?sep2fo4<=RvNY(BkW0+z!SPJ%dqnq5>OF?~d{fvEgubQNuSF{Tt;6li>gW diff --git a/developer/example/Example_SRM_List.class b/developer/example/Example_SRM_List.class deleted file mode 100644 index 1b3e05c3ab35e9686aed43dbe36843e1ec31f3d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2515 zcmb7GOII6Z7=AuTnGmK@0|cqGrU(e6Hnn1{4Pt>d1r4Q=2)0%6BbkOFlbJX(pR{#t6GJ+0tDhR1K zfi8hl+j2)H4QUpWE1TO|-WBMY(M{c*73iFpTvHGh==X)Hu5KhVx>?c+8QpOsP|z7h zkARr-&L>qogJwk`{%R^KR%T>Ym2VCNf$3KAwym3P*0nWRPIkzNT@iE7X=1A;1(=1FWq(B z-Qvk{rRh3N#%h|At;Qlq;-Z3=R9wQ#0)2k6k77a>D;`3I*;Ed7t7{%;uc)|;R|%S7 z(HY&MaJ!&oYMP8tAkmGhNGX_6@j6(<(`^*OXx)-P_v+Hk#oY2rHYaeoonkt);g`fU z6?2$pPsw~GUj`X*QJd z8%$?LViWfoygtky`O+>@x9=FXK*W%nnz3Q{tr`mqGz}3x(dpRitxN4->~}v^V@Jc; ztJFi9I`*-d));1KCEfPZ|6%B4)|L6vvaHmAjbyE=o!8R32mL@Zx);1MVEX1Q%XM5^ zR+cq)%PKfwaD4XE2f@|22!lP|x5SyOOCw${QJ=9zkU236Y;XU*P0e^C!C+qFY29pA zWKMhM?z@^D56X$!yPG*qRNdUMN?I~VeK0uEGVfaUp1`+_^QR^l z1hXj3f}uI=39D4Cq+0QBpd3-mF_*`PH_c5oL{9}<)Zd<&FpBgr^?F7~vV7Mi9j``Z!->lpDk* z|8(dW#zS(yMjYP|#P2EPVG(BCSACFfc-EAClGq$yb4KB5zS6@2{G_7X4NC*OI@MQKjr@>h53{A72~dXKfb` MxqpJs@CAnc0U@xf@Bjb+ diff --git a/developer/example/Example_SRM_List.java b/developer/example/Example_SRM_List.java index 4aa315a..8bd2959 100644 --- a/developer/example/Example_SRM_List.java +++ b/developer/example/Example_SRM_List.java @@ -3,7 +3,7 @@ import com.ReasoningTechnology.Ariadne.Ariadne_SRM_List; import java.util.LinkedList; -public class Example_SRM_List { +public class Example_SRM_List{ public static void main(String[] args){ // Create a linked list LinkedList label_list = new LinkedList<>(); diff --git a/developer/example/IndexTree_Diagonal_SRM.class b/developer/example/IndexTree_Diagonal_SRM.class deleted file mode 100644 index c6d1d1ac2791397afa22adb3ac387286598f616d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4313 zcmb_fYj+dZ72PArj4Z~0g)t_?;FgDNNk%P(1Z>xUO_Br?Z zpZ|ULJpkiaRuNFpIc4U>E3>u`nX`souuQ#_nYoaTKtV`D3$`fOGGds9GpZoi*FP6Q z7$Fs{3gS6yF?m7g70Wct!mP*@O{-)TmXc>|L(iL{_Lb&TY*n!Hx_(1XRvn|nEn8no z85Jjj2tutqY@3Gd*g=0vT+LY5GMTDrm4zwt8Pm!O1v^p=b*VWlwW1n!O07e6Enmkl z>0P-b9FfTtjZ!`%1*FC<4V_Y>)fT$98b+6buE)bL)Dyu|*sJ1c4c*wMAhFS)XGO&! zgp2wDeIM)doGsrSi)ClYCBPY#R=LeS=K_e ztl)g#I?@|Qu#wzpa>+erNW(Bj$e?S&$rWoP(X*mdQE;wr!@#aF?MLjA+-0eRW>mu| zoF-IyJ}+^36qWwVGW0QxWqFplxn|jfCR38`u+Y{Az)e&$tD-FJ2@RjbBvF>+8@J4y z?#vrbk)w*En-1eU-0VV~kB=CW+&`z`Q%I2lWwMrxUgdpFbxy^!f)3Zfnw&-%*F*&8 zaY4n5EFz}%nT;}kHMr8sr!~xBUP0ItMxmIsSOll~J`54Y-LAmaL^gzRNyBAH>u^pt zGpwz$T>OlN7jczEEL#P`<2en8d^$_Hmo(_IY(i2|MUKcfb}UbL?NL6;QfpCz35&&{m)RTX)WC)^=^sBF#>+fE5e7M+yeJJC zl6N;Wd={@rtGS%0a4%X5wZUU{%o(F#>Q2>W3~OmVvQCMP4l5Y;P^+67Svy}>S86{+ zR~j^EzM{Ap8h5XT?J2_))78bSuxIsbiT*`XR!%R?>AZ(O__0>)VSz68Dn= zYw_zd%>}jgiRW-=)E^aEkP0=+nV^!^( zm@p&@_dcGuM`U;4gJz7$t2nk^P79}KcD48%5eV`9uKo%Mag|Gk+&5$2H~NRNP;l zjMvr%)0F5)c)A?!mzK}Gi|2q9Ov%ad>DT}dYdWgU7hisOOTrj(VVov}U`AVUkRTqy z0ra6CaRQXU2|jhlIhx?Z_5wkD34<_j3=WPHp=a?!4B_W|MZSp<{FyJjJ2>qkH_6l- zASb>?SzeV)&8zr25l%8y-yj!)v@qoE2B_cV?gnXn+TE3DdCN!rn;du6HE&YWle$T} z-{M{?T3SyA{)0k*LVVVHiNP`jgWNtH{2S6Ki4+l(D7#286GZBH52;34nvwFwB}~C4 zwvCg-XBof*i(r!P+9?Kjj)AA#uzS2Seb-wE%(q { +public class Ariadne_IndexTree_Child_SRM extends Ariadne_SRMI{ private BigInteger[] label; @@ -11,28 +11,39 @@ public class Ariadne_IndexTree_Child_SRM extends Ariadne_SRM { } protected Ariadne_IndexTree_Child_SRM(BigInteger[] initial_label){ - super(); - if (initial_label == null || initial_label.length == 0) { + super(BigInteger.ZERO ,null); + if(initial_label == null || initial_label.length == 0){ throw new IllegalArgumentException("Initial label must not be null or empty."); } this.label = initial_label; + set_state(state_infinite_right); } - @Override - public Topology topology(){ - return Topology.INFINITE_RIGHT; - } + private final Ariadne_SRM.State state_infinite_right = new Ariadne_SRM.State(){ + @Override boolean can_read(){ + return true; + } + @Override boolean can_step(){ + return true; + } + @Override void step(){ + increment_label(); + } + @Override Ariadne_SRM.MachineState state(){ + return Ariadne_SRM.MachineState.INFINITE; + } + }; - @Override - public BigInteger[] access(){ - // Return a reference to the current label - return label; + private void increment_label(){ + label[label.length - 1] = super.index(); } - @Override - public void step(){ - int max_index = label.length - 1; - label[max_index] = label[max_index].add(BigInteger.ONE); + @Override public void step(){ + super.step(); + label[label.length - 1] = super.index(); } + @Override public BigInteger[] read(){ + return label; + } } diff --git "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" "b/developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" index 44a4eb5..ceb1739 100644 --- "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" +++ "b/developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" @@ -3,26 +3,24 @@ package com.ReasoningTechnology.Ariadne; import java.math.BigInteger; import java.util.Arrays; -public class Ariadne_IndexTree_Node extends Ariadne_Node { +public class Ariadne_IndexTree_Node extends Ariadne_Node{ public static Ariadne_IndexTree_Node make(BigInteger[] label){ return new Ariadne_IndexTree_Node(label); } + private final BigInteger[] first_child_label; + public Ariadne_IndexTree_Node(BigInteger[] label){ super(label); + this.first_child_label = new BigInteger[label.length + 1]; + System.arraycopy(label, 0, this.first_child_label, 0, label.length); + this.first_child_label[label.length] = BigInteger.ZERO; } @Override public Ariadne_IndexTree_Child_SRM neighbor(){ - // Copy the current label - BigInteger[] parentLabel = this.label(); - BigInteger[] childLabel = new BigInteger[parentLabel.length + 1]; - System.arraycopy(parentLabel, 0, childLabel, 0, parentLabel.length); - - childLabel[parentLabel.length] = BigInteger.ZERO; - - return Ariadne_IndexTree_Child_SRM.make(childLabel); + return Ariadne_IndexTree_Child_SRM.make(first_child_label); } @Override diff --git "a/developer/javac\360\237\226\211/Ariadne_Node.java" "b/developer/javac\360\237\226\211/Ariadne_Node.java" index 2aa34d1..5384b06 100644 --- "a/developer/javac\360\237\226\211/Ariadne_Node.java" +++ "b/developer/javac\360\237\226\211/Ariadne_Node.java" @@ -55,8 +55,8 @@ public class Ariadne_Node extends HashMap { return this.label; } - public Ariadne_SRM neighbor() { - return Ariadne_SRM.make(); + public Ariadne_SRM neighbor(){ + throw new UnsupportedOperationException("Neighbor is not implemented in the base class."); } public void mark(Ariadne_Token token) { diff --git "a/developer/javac\360\237\226\211/Ariadne_SRM.java" "b/developer/javac\360\237\226\211/Ariadne_SRM.java" index 7301b5b..562073d 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRM.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRM.java" @@ -6,6 +6,7 @@ This is for single-threaded execution. The multi-threaded model uses `mount` and `dismount` to lock the resources being iterated on. */ +package com.ReasoningTechnology.Ariadne; public abstract class Ariadne_SRM{ @@ -25,7 +26,7 @@ public abstract class Ariadne_SRM{ abstract MachineState state(); } - private State current_state; + protected State current_state; protected void set_state(State new_state){ this.current_state = new_state; diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" "b/developer/javac\360\237\226\211/Ariadne_SRMI.java" index c4b3dfe..e7b2e29 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRMI.java" @@ -4,28 +4,48 @@ Ariadne_SRM with index */ package com.ReasoningTechnology.Ariadne; - -public class Ariadne_SRMI extends Ariadne_SRM{ - - public static Ariadne_SRMI make(){ - return new Ariadne_SRMI(); - } - protected Ariadne_SRMI(){ +import java.math.BigInteger; + +public abstract class Ariadne_SRMI extends Ariadne_SRM{ + + private BigInteger current_index; + private final BigInteger leftmost_index; + private final BigInteger rightmost_index; + + public Ariadne_SRMI(BigInteger leftmost_index, BigInteger rightmost_index){ + if(leftmost_index == null + || rightmost_index == null + || leftmost_index.compareTo(rightmost_index) > 0 + ){ + throw new IllegalArgumentException("Invalid tape bounds."); + } + this.leftmost_index = leftmost_index; + this.rightmost_index = rightmost_index; + this.current_index = leftmost_index; } - public int index(){ - throw new UnsupportedOperationException("Ariadne_SRMI::index not implemented."); + public BigInteger index(){ + return current_index; } - public int leftmost_index(){ - throw new UnsupportedOperationException("Ariadne_SRMI::leftmost_index not implemented."); + public BigInteger leftmost_index(){ + return leftmost_index; } - public int rightmost_index(){ - throw new UnsupportedOperationException("Ariadne_SRMI::rightmost_index not implemented."); + + public BigInteger rightmost_index(){ + return rightmost_index; } - void seek(int i){ - throw new UnsupportedOperationException("Ariadne_SRMI::seek not implemented."); + public void seek(BigInteger new_index){ + if(new_index.compareTo(leftmost_index) < 0 || new_index.compareTo(rightmost_index) > 0){ + throw new IndexOutOfBoundsException("Index out of bounds."); + } + this.current_index = new_index; } + @Override + public void step(){ + current_state.step(); + current_index = current_index.add(BigInteger.ONE); + } } diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" "b/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" index f5b5c92..bccefa0 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" @@ -1,70 +1,92 @@ package com.ReasoningTechnology.Ariadne; -import java.util.List; - -public class Ariadne_SRMI_Array extends Ariadne_SRMI{ - - public static Ariadne_SRMI_Array make(List array){ - return new Ariadne_SRMI_Array<>(array); - } - private List _array; - private int _index; - private Topology _topology; - private Location _location; - - protected Ariadne_SRMI_Array(List array) { - _array = array; +import java.math.BigInteger; +import java.util.List; - if( _array == null || _array.isEmpty() ) - _topology = Topology.NO_CELLS; - else if( _array.size() == 1 ) - _topology = Topology.SINGLETON; - else - _topology = Topology.SEGMENT; +public class Ariadne_SRMI_Array extends Ariadne_SRMI { - if(_topology == Topology.SEGMENT) - _location = Location.LEFTMOST; - else - _location = Location.OTHER; + private final List array; - _index = 0; - } + public Ariadne_SRMI_Array(List array) { + super(BigInteger.ZERO, array == null || array.isEmpty() ? BigInteger.ZERO : BigInteger.valueOf(array.size() - 1)); - @Override - public Topology topology(){ - return _topology; - } - - @Override - public Location location(){ - return _location; - } + if (array == null || array.isEmpty()) { + set_state(state_null); + } else if (array.size() == 1) { + set_state(state_rightmost); + } else { + set_state(state_segment); + } - @Override - public TElement access(){ - if( can_read() ) return _array.get( _index ); - throw new UnsupportedOperationException("Ariadne_SRMI_Array::read can not read tape."); + this.array = array; } @Override - public void step(){ - if( can_step() ){ - _index++; - if( _index == _array.size() - 1 ) _location = Location.RIGHTMOST; - return; + public TElement read() { + if (!can_read()) { + throw new UnsupportedOperationException("Cannot read from the current state."); } - throw new UnsupportedOperationException("Ariadne_SRMI_Array::step can not step."); + return array.get(index().intValueExact()); } - @Override - public int leftmost_index(){ - return 0; - } + private final State state_null = new State() { + @Override + boolean can_read() { + return false; + } + @Override + boolean can_step() { + return false; + } + @Override + void step() { + throw new UnsupportedOperationException("Cannot step from NULL state."); + } + @Override + MachineState state() { + return MachineState.NULL; + } + }; - @Override - public int rightmost_index(){ - if( can_read() ) return _array.size() - 1; - throw new UnsupportedOperationException("Ariadne_SRMI_Array::rightmost_index can not read array."); - } + private final State state_segment = new State() { + @Override + boolean can_read() { + return true; + } + @Override + boolean can_step() { + return index().compareTo(rightmost_index().subtract(BigInteger.ONE)) < 0; + } + @Override + void step() { + if (can_step()) { + seek(index().add(BigInteger.ONE)); + } else { + set_state(state_rightmost); + } + } + @Override + MachineState state() { + return MachineState.SEGMENT; + } + }; + private final State state_rightmost = new State() { + @Override + boolean can_read() { + return true; + } + @Override + boolean can_step() { + return false; + } + @Override + void step() { + throw new UnsupportedOperationException("Cannot step from RIGHTMOST state."); + } + @Override + MachineState state() { + return MachineState.RIGHTMOST; + } + }; } diff --git "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" index 45a11c3..b884f98 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" @@ -4,79 +4,91 @@ to read the current element without advancing the iterator. */ - package com.ReasoningTechnology.Ariadne; - import java.util.List; -import java.util.ListIterator; - -public class Ariadne_SRM_List extends Ariadne_SRM { - - public static Ariadne_SRM_List make(List list){ - return new Ariadne_SRM_List<>(list); - } - - private List _list; // The attached linked list - private ListIterator iterator; // Iterator for traversal - private TElement read_value; // Stores the current cell value - private Topology _topology; - private Location _location; - - // Protected constructor for controlled instantiation - protected Ariadne_SRM_List(List list){ - init(list); - } - private void init(List list){ - _list = list; - - if( _list == null || _list.isEmpty() ) - _topology = Topology.NO_CELLS; - else if( _list.size() == 1 ) - _topology = Topology.SINGLETON; - else - _topology = Topology.SEGMENT; +public class Ariadne_SRM_List extends Ariadne_SRM{ - if(_topology == Topology.SEGMENT) - _location = Location.LEFTMOST; - else - _location = Location.OTHER; + private final List list; + private int current_index; - if(_topology.ordinal() >= Topology.SINGLETON.ordinal()){ - iterator = _list.listIterator(); - read_value = iterator.next(); + public Ariadne_SRM_List(List list){ + if(list == null || list.isEmpty()){ + this.list = null; // not used, but what Java says, goes, if you want you code. + set_state(state_null); + }else{ + this.list = list; + this.current_index = 0; + set_state(state_segment); } } - @Override - public Topology topology(){ - return _topology; - } - - @Override - public Location location(){ - return _location; - } + private final State state_null = new State(){ + @Override + boolean can_read(){ + return false; + } + @Override + boolean can_step(){ + return false; + } + @Override + void step(){ + throw new UnsupportedOperationException("Cannot step from NULL state."); + } + @Override + MachineState state(){ + return MachineState.NULL; + } + }; - @Override - public TElement access(){ - if( can_read() ) return read_value; - throw new UnsupportedOperationException("Ariadne_SRM_List::access can not read tape."); - } + private final State state_segment = new State(){ + @Override + boolean can_read(){ + return true; + } + @Override + boolean can_step(){ + return current_index < list.size() - 1; + } + @Override + void step(){ + if(can_step()){ + current_index++; + }else{ + set_state(state_rightmost); + } + } + @Override + MachineState state(){ + return MachineState.SEGMENT; + } + }; - @Override - public void step(){ - if( can_step() ){ - read_value = iterator.next(); // Move to the next cell and update current value - if( !iterator.hasNext() ) _location = Location.RIGHTMOST; - return; + private final State state_rightmost = new State(){ + @Override + boolean can_read(){ + return true; } - throw new UnsupportedOperationException("Ariadne_SRM_List::step can not step."); - } + @Override + boolean can_step(){ + return false; + } + @Override + void step(){ + throw new UnsupportedOperationException("Cannot step from RIGHTMOST state."); + } + @Override + MachineState state(){ + return MachineState.RIGHTMOST; + } + }; @Override - public void rewind(){ - init(_list); + public T read(){ + if(!can_read()){ + throw new UnsupportedOperationException("Cannot read from NULL state."); + } + return list.get(current_index); } - } -- 2.20.1