#designed for the 2010 competition PRETRS = ((\ matrix -dim 1 -ib 3 -ob 5 || \ matrix -dim 2 -ib 2 -ob 3 || \ matrix -dim 3 -ib 1 -ob 2 || \ matrix -dim 3 -ib 1 -ob 1 || \ fail)[1]*) DIRECTTRS = ((\ kbo || \ (lpo | ref;lpo) || \ bounds -rfc -qc || \ unfold || \ fail)*[7])! SLTRS = ((\ sl -dp -ur -dim 1 -ib 1 -ob 2 -pl || \ sl -dp -ur -dim 1 -ib 2 -ob 2 -pl || \ sl -dp -ur -dim 2 -ib 1 -ob 2 -pl || \ fail)) ARCTICTRS = \ (arctic -dp -ur -dim 1 -ib 4 -ob 3[1] | \ arctic -dp -ur -dim 2 -ib 2 -ob 2[2] | \ arctic -dp -ur -dim 3 -ib 1 -ob 1[2] | \ arctic -dp -ur -dim 4 -ib 1 -ob 1[2] | \ fail) ARCTICBZTRS = \ (arctic -bz -dp -ur -dim 1 -ib 4 -ob 3[1] | \ arctic -bz -dp -ur -dim 2 -ib 2 -ob 2[2] | \ arctic -bz -dp -ur -dim 3 -ib 1 -ob 1[2] | \ arctic -bz -dp -ur -dim 4 -ib 1 -ob 1[2] | \ fail) BOUNDS = (bounds -dp -rfc -qc || bounds -dp -all -rfc -qc || bounds -rfc -qc) MAINTRS = (dp;tdg?;(sccs | sc)*;edg[0.5]?;cdg -rfc[0.5]?;(sccs | \ (sc || sct || \ {ur?;( \ matrix -dp -ur -dim 1 -ib 3 -ob 5 || \ matrix -dp -ur -dim 1 -ib 3 -ob 8 -rat 2 -db 1 || \ matrix -dp -ur -dim 1 -ib 4 -ob 10 -rat 4 -db 1 || \ matrix -dp -ur -dim 2 -ib 2 -ob 3 || \ matrix -dp -ur -dim 3 -ib 1 -ob 3 || \ matrix -dp -ur -dim 3 -ib 2 -ob 3 || \ matrix -dp -ur -dim 4 -ib 1 -ob 2 || \ (kbo -ur -af | lpo -ur -af) || \ ARCTICTRS || \ ARCTICBZTRS || \ (if duplicating then fail else SLTRS) || \ fail) \ }restore || \ BOUNDS || \ fail \ ))*[6]) TOTALTRS=(PRETRS;(MAINTRS || DIRECTTRS)) TRS = ((\ if applicative then \ (lpo | uncurry?;uncurry -mirror?;TOTALTRS) \ else \ TOTALTRS \ )[6] || \ poly -nl -heuristic 1 -neg -ib 3 -ob 7 -direct[9] \ ) REV = rev? PRESRS = ( \ matrix -dim 1 -ib 4 -ob 5[4] || \ matrix -dim 2 -ib 2 -ob 3[4] || \ matrix -dim 3 -ib 1 -ob 2[4] || \ matrix -dim 3 -ib 2 -ob 3[4] || \ matrix -dim 4 -ib 1 -ob 2[4] || \ REV;matrix -dim 1 -ib 4 -ob 5[4] || \ REV;matrix -dim 2 -ib 2 -ob 3[4] || \ REV;matrix -dim 3 -ib 1 -ob 2[4] || \ REV;matrix -dim 3 -ib 2 -ob 3[4] || \ REV;matrix -dim 4 -ib 1 -ob 2[4] || \ bounds -rfc -qc[4] || \ REV;bounds -rfc -qc[4] || \ kbo -smt[4] || \ unfold [4] || \ arctic -dim 1 -ib 4 -ob 5[4] || \ arctic -dim 2 -ib 2 -ob 3[4] || \ arctic -dim 3 -ib 1 -ob 2[4] || \ arctic -dim 3 -ib 2 -ob 2[4] || \ fail)* INTERNSRS = \ matrix -dim 1 -dp -ib 5 -ob 6[59] || \ matrix -dim 1 -dp -ur -ib 4 -ob 10 -rat 2 -db 5[59] || \ (kbo -smt | kbo -af -ur -smt | lpo -af -ur)[59] || \ matrix -dp -dim 2 -ib 3 -ob 3[59] || \ (matrix -dp -dim 3 -ib 1 -ob 2[30] | matrix -dp -dim 3 -ib 2 -ob 3)[59] || \ matrix -dp -dim 4 -ib 1 -ob 1[59] || \ matrix -dp -dim 5 -ib 1 -ob 2[59] || ARCTICSRS = \ arctic -dp -ur -dim 1 -ib 4 -ob 5[59] || \ arctic -dp -ur -dim 2 -ib 2 -ob 3[59] || \ arctic -dp -ur -dim 3 -ib 1 -ob 2[59] || \ arctic -dp -ur -dim 4 -ib 1 -ob 1[59] || ARCTICBZSRS = \ arctic -bz -dp -ur -dim 1 -ib 4 -ob 5[59] || \ arctic -bz -dp -ur -dim 2 -ib 2 -ob 3[59] || \ arctic -bz -dp -ur -dim 3 -ib 1 -ob 2[59] || \ arctic -bz -dp -ur -dim 4 -ib 1 -ob 1[59] || BOUNDSRS = \ ((bounds -dp -rfc -qc[20] | bounds -dp -rfc -all -qc)[30] || bounds -dp -qc[30]) || LOOPSRS = (\ loop -dp -r 15 -c 15[10] | \ loop -dp -r 20 -c 15[10] | \ loop -dp -r 15 -c 20[10] | \ loop -dp -r 20 -c 20[30]) || LABSRS = (((dp;(tdg?;(sccs | ur | poly -ib 1 -ob 2 | poly -dp -ur -ib 1 -ob 3)*;rlab)2*)[3]))! MAINSRS = (dp;(tdg?;edg[0.5]?;cdg -rfc[0.5]?;sccs?;({ur?;( \ INTERNSRS \ BOUNDSRS \ ARCTICBZSRS \ ARCTICSRS \ LOOPSRS \ fail)}restore?)[59])*) SRS = ((PRESRS;(MAINSRS[59] || REV;MAINSRS[59])) || (sleep -t 20?;LABSRS)) #TODO: add methods in direct setting #DERIVATION LENGTH ARCTIC_CPXB = ( \ arctic -cp -dim 1 -ib 3 -ob 4 || \ arctic -cp -dim 1 -ib 4 -ob 5 || \ arctic -cp -dim 2 -ib 2 -ob 3 || \ arctic -cp -dim 2 -ib 3 -ob 4 || \ arctic -cp -dim 3 -ib 2 -ob 3 || \ arctic -cp -dim 3 -ib 3 -ob 4 || \ fail) WGPB = ( \ matrix -strict -cp -triangle -dim 1 -ib 4 -ob 5 || \ matrix -strict -cp -triangle -dim 1 -ib 5 -ob 6 || \ matrix -strict -cp -triangle -dim 1 -ib 6 -ob 7 || \ matrix -strict -cp -triangle -dim 1 -ib 7 -ob 8 || \ matrix -strict -cp -triangle -dim 1 -ib 8 -ob 9 || \ fail) MATRIXAB = ( \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 2 -ob 3 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 3 -ob 3 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 3 -ob 4 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 4 -ob 5 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 5 -ob 5 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 3 -ob 3 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 3 -ob 4 || \ matrix -cp -overlay -ones 1 -triangle -dim 4 -ib 2 -ob 2 || \ fail) LINEARB = ( \ bounds -cp[5] || \ (if dummy then ARCTIC_CPXB else fail) || \ MATRIXAB || \ fail) QUADRATICB = ( \ matrix -cp -overlay -triangle -direct -dim 2 -ib 3 -ob 4 || \ matrix -cp -overlay -triangle -dim 2 -ib 2 -ob 2 || \ matrix -cp -overlay -triangle -dim 2 -ib 2 -ob 3 || \ matrix -cp -overlay -triangle -dim 2 -ib 3 -ob 3 || \ matrix -cp -overlay -triangle -dim 2 -ib 3 -ob 4 || \ matrix -cp -overlay -triangle -dim 2 -ib 4 -ob 5 || \ matrix -cp -overlay -triangle -dim 2 -ib 5 -ob 5 || \ matrix -cp -overlay -ones 2 -triangle -dim 3 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 2 -triangle -dim 3 -ib 3 -ob 3 || \ matrix -cp -overlay -ones 2 -triangle -dim 4 -ib 1 -ob 2 || \ fail) CUBICB = ( \ matrix -cp -overlay -triangle -dim 3 -ib 1 -ob 2 || \ matrix -cp -overlay -triangle -dim 3 -ib 2 -ob 2 || \ matrix -cp -overlay -triangle -dim 3 -ib 3 -ob 3 || \ matrix -cp -overlay -triangle -dim 3 -ib 3 -ob 4 || \ matrix -cp -mul -dim 3 -ib 3 -ob 3 || \ fail) QUARTICB= ( \ matrix -cp -overlay -triangle -dim 4 -ib 1 -ob 2 || \ matrix -cp -overlay -triangle -dim 4 -ib 2 -ob 2 || \ matrix -cp -mul -dim 4 -ib 2 -ob 3 || \ fail) COMPLABB= rlab; ( \ matrix -cp -overlay -triangle -direct -dim 1 -ib 2 -ob 3[15] | \ matrix -cp -overlay -triangle -direct -dim 2 -ib 2 -ob 4[15] | \ matrix -cp -overlay -triangle -direct -dim 3 -ib 2 -ob 2[30] | \ fail) COMPLEXDIRECTB = ( \ WGPB[5]*;( \ LINEARB[10] || \ (QUADRATICB[55]) || \ (CUBICB[55]) || \ (QUARTICB[55]) || \ fail)* \ ) # #sleep -t 5?;matrix -triangle -direct -dim 2 -ib 3 -ob 4 || \ #sleep -t 10?;matrix -triangle -direct -dim 3 -ib 3 -ob 3 || \ #sleep -t 20?;matrix -triangle -direct -dim 4 -ib 2 -ob 3 || \ COMPLEXITY = (var | (if duplicating then fail else ( \ bounds [5] || bounds -qc[10] || \ ((if applicative then uncurry?;uncurry -mirror? else fail)?; ( \ (cp;(COMPLEXDIRECTB || sleep -t 5?;COMPLABB)) || \ fail))!))) #certification # add strategy for arctic as soon as supported by ceta # if srs then arctic -dim 1 -ib 4 -ob 5 else fail || \ # if srs then arctic -dim 2 -ib 2 -ob 3 else fail || \ # if srs then arctic -dim 3 -ib 1 -ob 2 else fail || \ # if srs then arctic -dim 3 -ib 2 -ob 2 else fail || \ PRETRSCERT = ((\ matrix -dim 1 -ib 5 -ob 8 || \ matrix -dim 2 -ib 3 -ob 4 || \ matrix -dim 3 -ib 2 -ob 3 || \ matrix -dim 3 -ib 1 -ob 2 || \ matrix -dim 4 -ib 1 -ob 2 || \ matrix -dim 5 -ib 1 -ob 1 || \ fail)[5]*) DIRECTTRSCERT = ((\ unfold || \ fail)*[7])! ARCTICTRSCERT = \ (arctic -dp -ur -dim 1 -ib 4 -ob 3[10] | \ arctic -dp -ur -dim 2 -ib 2 -ob 2[15] | \ arctic -dp -ur -dim 3 -ib 1 -ob 1[15] | \ arctic -dp -ur -dim 4 -ib 1 -ob 1[15] | \ fail) ARCTICBZTRSCERT = \ (arctic -bz -dp -ur -dim 1 -ib 4 -ob 3[10] | \ arctic -bz -dp -ur -dim 2 -ib 2 -ob 2[15] | \ arctic -bz -dp -ur -dim 3 -ib 1 -ob 1[15] | \ arctic -bz -dp -ur -dim 4 -ib 1 -ob 1[15] | \ fail) MAINTRSCERT = (dp;edg[1.0]?;(sccs | \ (sc || sct || \ ur?;( \ matrix -dp -ur -dim 1 -ib 3 -ob 5 || \ matrix -dp -ur -dim 1 -ib 3 -ob 8 -rat 2 -db 1 || \ matrix -dp -ur -dim 1 -ib 4 -ob 10 -rat 4 -db 1 || \ matrix -dp -ur -dim 2 -ib 2 -ob 3 || \ matrix -dp -ur -dim 2 -ib 3 -ob 4 -rat 2 -db 0 || \ matrix -dp -ur -dim 3 -ib 1 -ob 3 || \ matrix -dp -ur -dim 3 -ib 2 -ob 3 || \ matrix -dp -ur -dim 3 -ib 2 -ob 3 -rat 2 -db 0 || \ matrix -dp -ur -dim 4 -ib 1 -ob 2 || \ lpo -ur -af || \ ARCTICTRSCERT || \ ARCTICBZTRSCERT || \ fail)) \ )*[59]) TOTALTRSCERT=((PRETRSCERT;MAINTRSCERT) || DIRECTTRSCERT) TRSCERT = TOTALTRSCERT #relative PRERELATIVE = (\ (if duplicating then fail else (bounds -rt || bounds -rt -qc)) || \ matrix -dim 1 -ib 5 -ob 6 || \ matrix -dim 2 -ib 4 -ob 5 || \ matrix -dim 2 -ib 2 -ob 2 || \ matrix -dim 3 -ib 3 -ob 4 || \ matrix -dim 3 -ib 2 -ob 3 || \ matrix -dim 4 -ib 2 -ob 3 || \ matrix -dim 4 -ib 2 -ob 2 || \ matrix -dim 5 -ib 2 -ob 2 || \ matrix -dim 5 -ib 1 -ob 2 || \ arctic -dim 1 -ib 4 -ob 5 || \ arctic -dim 2 -ib 3 -ob 4 || \ arctic -dim 3 -ib 2 -ob 3 || \ arctic -dim 4 -ib 2 -ob 2 || \ fail \ ) RELATIVE = ((\ unfold || \ PRERELATIVE || \ REV;PRERELATIVE || \ REV;unfold || \ if srs then (sleep -t 20?;rlab) else fail || \ fail \ )*)[59] #everything together COMP = (if standard \ then (var | con | (if srs then (SRS[59]) else (TRS[10]))) \ else RELATIVE) #complexity COMPLEXITY = COMPLEXITY ARCTIC_CPXC = ( \ arctic -cp -dim 1 -ib 4 -ob 5 || \ arctic -cp -dim 2 -ib 3 -ob 4 || \ arctic -cp -dim 3 -ib 3 -ob 4 || \ arctic -cp -dim 4 -ib 1 -ob 2 || \ arctic -cp -dim 4 -ib 2 -ob 3 || \ arctic -cp -dim 5 -ib 1 -ob 1 || \ arctic -cp -dim 5 -ib 1 -ob 2 || \ fail) MATRIXAC = ( \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 2 -ob 4 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 3 -ob 4 || \ matrix -cp -overlay -ones 1 -triangle -dim 2 -ib 5 -ob 5 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 2 -ob 3 || \ matrix -cp -overlay -ones 1 -triangle -dim 3 -ib 3 -ob 4 || \ matrix -cp -overlay -ones 1 -triangle -dim 4 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 4 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 5 -ib 1 -ob 1 || \ matrix -cp -overlay -ones 1 -triangle -dim 5 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 1 -triangle -dim 5 -ib 2 -ob 2 || \ fail) LINEARC = ( \ bounds -cp[5] || \ (if dummy then ARCTIC_CPXC else fail) || \ MATRIXAC || \ fail) QUADRATICC = ( \ matrix -cp -overlay -triangle -dim 2 -ib 2 -ob 4 || \ matrix -cp -overlay -triangle -dim 2 -ib 3 -ob 4 || \ matrix -cp -overlay -triangle -dim 2 -ib 4 -ob 5 || \ matrix -cp -overlay -triangle -dim 2 -ib 5 -ob 5 || \ matrix -cp -overlay -ones 2 -triangle -dim 3 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 2 -triangle -dim 3 -ib 2 -ob 3 || \ matrix -cp -overlay -ones 2 -triangle -dim 3 -ib 3 -ob 3 || \ matrix -cp -overlay -ones 2 -triangle -dim 4 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 2 -triangle -dim 4 -ib 2 -ob 2 || \ matrix -cp -overlay -ones 2 -triangle -dim 5 -ib 1 -ob 2 || \ matrix -cp -overlay -ones 2 -triangle -dim 5 -ib 2 -ob 2 || \ fail) CUBICC = ( \ matrix -cp -overlay -triangle -dim 3 -ib 2 -ob 3 || \ matrix -cp -overlay -triangle -dim 3 -ib 3 -ob 4 || \ matrix -cp -mul -dim 3 -ib 3 -ob 3 || \ matrix -cp -mul -dim 3 -ib 3 -ob 3 || \ matrix -cp -overlay -triangle -dim 4 -ones 3 -ib 1 -ob 2 || \ matrix -cp -overlay -triangle -dim 4 -ones 3 -ib 2 -ob 2 || \ matrix -cp -overlay -triangle -dim 5 -ones 3 -ib 1 -ob 1 || \ matrix -cp -overlay -triangle -dim 5 -ones 3 -ib 2 -ob 2 || \ fail) CP1 = ((LINEARC)*) CP1 = (CP1[5]?;rlab;CP1) CP2 = ((LINEARC || QUADRATICC)*) CP2 = (CP2[5]?;rlab;CP2) CP3 = ((LINEARC || QUADRATICC || CUBICC)*) CP3 = (CP3[5]?;rlab;CP3) #cert COMPCERT = (var | con | (if srs \ then ((sleep -t 50?;rlab;TRSCERT[59])! || (TRSCERT[59])! || (rev;TRSCERT[59])!) \ else TRSCERT[59]))