texlive[50047] Master/texmf-dist: rec-thy (17feb19)

commits+karl at tug.org commits+karl at tug.org
Mon Feb 18 00:02:20 CET 2019


Revision: 50047
          http://tug.org/svn/texlive?view=revision&revision=50047
Author:   karl
Date:     2019-02-18 00:02:19 +0100 (Mon, 18 Feb 2019)
Log Message:
-----------
rec-thy (17feb19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.pdf
    trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
    trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty

Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex	2019-02-17 23:02:03 UTC (rev 50046)
+++ trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex	2019-02-17 23:02:19 UTC (rev 50047)
@@ -53,7 +53,9 @@
 \usepackage{multirow}
 \usepackage{booktabs}
 \usepackage{xtab}
-\usepackage{rec-thy}
+
+\usepackage[suppPriorityTrees]{rec-thy}
+\usepackage{suffix}
 \usepackage{metalogo}
 
 
@@ -112,6 +114,33 @@
 
 Significant use is made in this package of optional arguments delimited either by square brackets or parenthesis.  Users of the package should take care to wrap arguments that may themselves include brackets or parenthesis in braces.  For example \verb=\REset(\REset(X){e}){i}= should be fixed to \verb=\REset({\REset(X){e}}){i}=.
 
+\section{Alternate Symbols}
+While the symbols used by default in the package are suggested for adoption to achieve greater consistency users may wish to specify their own symbols and options have been provided to enable this.  The following parameters may be specified.
+
+\begin{itemize}
+	\item[modulescr] Sets the script used to typeset the \verb=\module= command.  Default is mathcal.
+	\item[reqscr] Sets the script used to typeset requirements.  Default is mathscr.
+	\item[pfcasefont] Sets the script used to typeset Case in the cases helper.
+	\item[emptystr] Sets the empty string symbol
+	\item[concatsym] Sets the concat symbol.
+	\item[cdeltasym] Sets the symbol used to denote computably \( \Delta \) formulas.  Default is \( \prescript{\mathcal{C}}{}{\Delta} \).
+	\item[cpisym] Same for \( \Pi \) formulas.  Default is \( \prescript{\mathcal{C}}{}{\Pi} \).
+	\item[csigmasym] Same for \( \Sigma \) formulas.  Default is \( \prescript{\mathcal{C}}{}{\Sigma} \).
+	\item[recfnlsym] Sets the symbol used for recursive functionals.  Default is \( \Phi \).
+	\item[recfsym]  Sets the symbol used for recursive functions.  Default is \( \phi \).
+	\item[usesym]  Sets the symbol used for the use operator.  Default is \( \symbffrak{u} \) where this is printed using \verb=\symbfrak= if unicode-math is loaded and with \verb=\mathfrak= otherwise.
+	\item[ballsymb] Sets the symbol used for the ball command.  Default is \( \mathscr{B} \).
+\end{itemize}
+
+As an example of how to use these commands consider the following code changing the ball symbol to \( \mathbf{B} \).
+
+\begin{verbatim}
+\def\myballsymb{\mathbf{B}}
+
+\usepackage[suppPriorityTrees, ballsymb=myballsymb]{rec-thy}
+\end{verbatim}
+
+
 \section{Commands}
 A few general conventions are usually followed in the commands.  Whenever an operator can be used as a binary operator (as in \( X \union Y \)) and as an operation on some collection \( \Union_{i \in \omega} X_i \) the binary operator will begin with a lowercase letter \verb=\union= and the operation on the collection will begin with a capital letter \verb=\Union=.  If the first letter is already capitalized then the second letter is used instead.
 
@@ -122,21 +151,28 @@
 
 \subsection{Priority Trees}
 
-Note the commands in this section double as suggestions for standardized notation.
+Note the commands in this section double as suggestions for standardized notation.  
 
 \begin{xtabular}{l |  l | l}\toprule
-	\verb=\PriorityTree=					& \( 	\PriorityTree                   \)	& Truepath. \\ \midrule
+	\verb=\PriorityTree=					& \( 	\PriorityTree                   \)	& Priority Tree \\ \midrule
 	\verb=\tpath=					& \(  \tpath                   \)	& Truepath. \\ \midrule
 	\verb=\tpath[s]=					& \( 	\tpath[s]                   \)	& Approximate Truepath. \\ \midrule
 	\verb=\xi \leftof \eta =					& \( 	\xi \leftof \eta                   \)	& The left of relation for priority tree arguments \\ \midrule
-	\verb=\Astages{\xi}=					& \( 	\Astages{\xi}                   \)	& Set of stages at which \( \xi \) is active. \\ \midrule
-	\verb=\Vstages{\xi}=					& \( 	\Vstages{\xi}                   \)	& Stages where \( \xi \subfun \tpath[s] \) even if links skip \( \xi \). \\ \midrule
-	\verb=\reqof{\xi}=					& \( 	\reqof{\xi}                   \)	& Requirement implemented by a node \( \xi \). \\ \midrule
+	\verb=\module{R}[X]{i,j}=					&  \module{R}{i,j}  & Module in tree construction (superscript optional arg) \\ \midrule
 	\verb=\ball[X]{y}{s}=					& \( 	\ball[X]{y}{s}                  \)	& Location of ball \( y\) (headed to \( X \)) at \( s \)\\ \midrule
 	\verb=\ball{y}{s}=					& \( 	\ball{y}{s}                  \)	& Location of ball \( y\)  at \( s \)\\ \bottomrule
 	\end{xtabular}          \\
 
 
+There are a few additional commands relating to priority trees which are less frequently used and require passing the option \verb=suppPriorityTrees= to the package to use.  These commands exist in a kind of limbo and will probably be removed in some future edition of the package absent popular demand and feedback for better notation.
+
+\begin{xtabular}{l |  l | l}\toprule
+	\verb=\Astages{\xi}=					& \( 	\Astages{\xi}                   \)	& Set of stages at which \( \xi \) is active. \\ \midrule
+	\verb=\Vstages{\xi}=					& \( 	\Vstages{\xi}                   \)	& Stages where \( \xi \subfun \tpath[s] \) even if links skip \( \xi \). \\ \midrule
+	\verb=\reqof{\xi}=					& \( 	\reqof{\xi}                   \)	& Requirement implemented by a node \( \xi \). \\  \bottomrule
+\end{xtabular}
+
+
 \subsection{Computations}
 To disable these commands pass the option \verb=nocomputations=. \\  To specify an alternative symbol for either recursive functionals or recursive functions pass  \verb!recfnlsym=macroname! or \verb!recfsym=macroname!.  For instance, to use \( \psi \) for recursive functions and \( \Psi \) for recursive functionals pass the options \verb!recfsym=psi, recfnlsym=Psi!.  
 
@@ -146,10 +182,10 @@
 	\verb=\recf[s]{e}=                             & \( 	\recf[s]{e}                   	   \)   & \\[6pt]
 	\verb=\recf{e}(x)=                             & \( 	\recf{e}(x)                   	   \)   & \\[6pt]
 	\verb=\recf[s]{e}(x)=                             & \( 	\recf[s]{e}(x)                   	   \)   & \\[6pt]
-	\verb=\recf{e}[Y]=                             & \( 	\recf{e}[Y]                   	   \)   & \\[6pt]
-	\verb=\recf[s]{e}[Y]=                             & \( 	\recf[s]{e}[Y]                   	   \)   & \\[6pt]
-	\verb=\recf{e}[Y](x)=                             & \( 	\recf[s]{e}[Y](x)                   	   \)   & \\[6pt]
-	\verb=\recf[s]{e}[Y](x)=                             & \( 	\recf[s]{e}[Y](x)                   	   \)   & \\[6pt]
+	\verb=\recf(Y){e}=                             & \( 	\recf(Y){e}                  	   \)   & \\[6pt]
+	\verb=\recf[s](Y){e}=                             & \( 	\recf[s](Y){e}                   	   \)   & \\[6pt]
+	\verb=\recf(Y){e}(x)=                             & \( 	\recf(Y){e}(x)                   	   \)   & \\[6pt]
+	\verb=\recf[s](Y){e}(x)=                             & \( 	\recf[s](Y){e}(x)                   	   \)   & \\[6pt]
 	\verb=\recfnl{e}{Y}{x}=                                	& \( 	\recfnl{e}{Y}{x}                      	   \)   &\multirow{4}{*}{Computable functionals} \\[6pt]
 	\verb=\recfnl[s]{e}{Y}{x}=                             & \( 	\recfnl[s]{e}{Y}{x}                   	   \)   & \\[6pt]
 	\verb=\recfnl{e}{Y}{}=                                 & \( 	\recfnl{e}{Y}{}                       	   \)   & \\[6pt]
@@ -195,14 +231,19 @@
 	\tab \verb=X \Teq Y=                                        &   & \\ \midrule
 	\verb=X \nTequiv Y=                                    & \multirow{2}{*}{\( 	X \nTequiv Y                          	   \)}   & \multirow{2}{*}{Turing inequivalence} \\
 	\tab \verb=X \nTeq Y=                                       &    & \\ \midrule
-        \verb=X \Tlneq Y=                                      & \(  X \Tlneq Y                              	   \)   & \\ \midrule
-        \verb=X \Tleq  Y=                                      & \(  X \Tleq  Y                              	   \)   & \\ \midrule
-        \verb=X \Tgneq Y=                                      & \(  X \Tgneq Y                              	   \)   & \\ \midrule
-        \verb=X \Tgeq  Y=                                      & \(  X \Tgeq  Y                              	   \)   & \\ \midrule
-        \verb=X \Tgtr  Y=                                      & \(  X \Tgtr  Y                              	   \)   & \\ \midrule
-        \verb=X \Tless Y=                                      & \(  X \Tless Y                              	   \)   & \\ \midrule
-        \verb=X \nTleq Y=                                      & \(  X \nTleq Y                              	   \)   & \\ \midrule
-        \verb=X \nTgeq Y=                                      & \(  X \nTgeq Y                              	   \)   & \\ \midrule
+        \verb=X \Tlneq Y=                               	& \(  X \Tlneq Y   \)   & \\ \midrule
+        \verb=X \Tleq  Y=                               	& \(  X \Tleq  Y   \)   & \\ \midrule
+        \verb=X \Tgneq Y=                               	& \(  X \Tgneq Y   \)   & \\ \midrule
+        \verb=X \Tgeq  Y=                               	& \(  X \Tgeq  Y   \)   & \\ \midrule
+        \verb=X \Tgtr  Y=                               	& \(  X \Tgtr  Y   \)   & \\ \midrule
+        \verb=X \Tless Y=                               	& \(  X \Tless Y   \)   & \\ \midrule
+        \verb=X \nTleq Y=                               	& \(  X \nTleq Y   \)   & \\ \midrule
+        \verb=X \nTgeq Y=                               	& \(  X \nTgeq Y   \)   & \\ \midrule
+        \verb=X \Tincompat Y=                                      & \multirow{2}{*}{\(  X \Tincompat Y   \)}   & Turing incompatibility \\ 
+        \tab \verb=X \Tincomp Y= 							& & \\ \midrule 
+        \verb=X \Tcompat Y=                               	& & \multirow{3}{*}{\(  X \Tcompat Y   \)}    \\
+        \tab \verb=X \nTincomp Y= & & \\
+        \tab \verb=X \nTincompat Y= & & \\  \midrule
 	\verb=\Tdeg{d} \Tdegjoin \Tdeg{d'}=                    & \( 	\Tdeg{d} \Tdegjoin \Tdeg{d'}          	   \)   & Join of degrees\\ \midrule
 	\verb=\Tdeg{d} \Tdegmeet \Tdeg{d'}=                    & \multirow{2}{*}{\( 	\Tdeg{d} \Tdegmeet \Tdeg{d'}          	   \)}   & \multirow{2}{*}{Meet of degrees (when defined)} \\
 	\tab \verb=\Tdeg{d} \Tmeet \Tdeg{d'}=                       &    & \\ \midrule
@@ -228,13 +269,13 @@
 
 \begin{tabular}{l |  l | l}\toprule
 \verb=\req{R}{e}=			 &  \( \req{R}{e} \) & \multirow{3}{*}{Requirement } \\ \midrule
-\verb=\req[\nu]{R}{e\}=	&  \req[\nu]{R}{e} & \\ \midrule
+\verb=\req{R}[\nu]{e\}=	&  \req{R}[\nu]{e} & \\ \midrule
 \verb=\req*{R}{e\}=			 &  \req{R}{e} & \multirow{3}{*}{Requirement without hyperlinks} \\ \midrule
-\verb=\req*[\nu]{R}{e\}=	&  \req[\nu]{R}{e} & \\ \midrule
+\verb=\req*{R}[\nu]{e\}=	&  \req{R}[\nu]{e} & \\ \midrule
 	\bottomrule
 \end{tabular}          \\
 
-We also introduce the following two enviornments for introducing requirements.  The requirement enviornment is used as follows
+We also introduce the following environments for introducing requirements.  The requirement environment is used as follows
 
 \begin{lstlisting}[breaklines]
 	\begin{requirement}{\req{R^{*}}{r,j}}
@@ -248,7 +289,7 @@
 		\recfnl{r}{B}{} = \REset{j} \implies   \exists[k] \left( \Upsilon^{j}_k(C \Tplus \REset{j}) = B) \lor \REset{j} \Tleq \Tzero \right) 
 	\end{requirement}
 
-The require environment merges the \verb=\req[\nu]{R}{e\}= command directly into the environment arguments.  It also creates an automatic label which makes use of the 1st and 2nd arguments but assumes the third argument contains only indexes whose names are subject to change.  Unless \verb=nohyperreqs= is passed the \verb=\req[\nu]{R}{e\}= automatically links to the defining require enviornment.
+The require environment merges the \verb=\req[\nu]{R}{e\}= command directly into the environment arguments.  It also creates an automatic label which makes use of the 1st and 2nd arguments but assumes the third argument contains only indexes whose names are subject to change.  Unless \verb=nohyperreqs= is passed the \verb=\req[\nu]{R}{e\}= automatically links to the defining require environment.
 
 \begin{lstlisting}[breaklines]
 \begin{require}{R}{i}
@@ -262,9 +303,25 @@
 	\recfnl{i}{B}{} = \REset{i} \implies   \exists[k] \left( \Upsilon^{i}_k(C \Tplus \REset{i}) = B) \lor \REset{j} \Tleq \Tzero \right)
 \end{require}
 
+To list multiple requirements at once without introducing unnecessary spaces we also introduce the requirements environment which can be used as follows.  Note that one may \textit{not} end the final line with a linebreak or an undesired tag will appear.
 
+\begin{lstlisting}[breaklines]
+\begin{requirements}
+\require{P}[A]{e} A \neq \recfnl{i}{}{} \\
+\require{P}[B]{e} B \neq \recfnl{i}{}{} \\
+\require{R}{i,\hat{i},j,\hat{j}} \recfnl{i}{A}{} = \hat{A} \land \recfnl{\hat{i}}{\hat{A}}{} = A \land  \recfnl{j}{B}{} = \hat{B} \land \recfnl{\hat{j}}{\hat{B}}{} = B \implies \Gamma(\hat{A} \symdiff \hat{B}) = A \Tplus B 
+\end{requirements}
+\end{lstlisting}
 
+\begin{requirements}
+\require{P}[A]{e} A \neq \recfnl{i}{}{} \\
+\require{P}[B]{e} B \neq \recfnl{i}{}{} \\
+\require{R}{i,\hat{i},j,\hat{j}} \recfnl{i}{A}{} = \hat{A} \land \recfnl{\hat{i}}{\hat{A}}{} = A \land  \recfnl{j}{B}{} = \hat{B} \land \recfnl{\hat{j}}{\hat{B}}{} = B \implies \Gamma(\hat{A} \symdiff \hat{B}) = A \Tplus B 
+\end{requirements}
 
+
+
+
 \subsection{General Math Commands}
 To disable these commands pass the option \verb=nomath=. \\
 
@@ -273,10 +330,6 @@
 	\verb=\iffdef= 					& \( \iffdef \) & Definitional equivalence\\	\midrule
 	\verb=\aut= 					& \( \aut \)  & Automorphisms of some structure\\ \midrule
 	\verb=\Ord= 					& \( \Ord \) & Set of ordinals\\\midrule
-	\verb=x \meet y= 				& \( x \meet y \) & \multirow{2}{*}{Meet operation} \\[6pt]
-	\verb=\Meet_{i\in \omega} x_i=		& \( \Meet_{i\in \omega} x_i \) & \\ \midrule
-	\verb=x \join y= 				& \(x  \join y \) & \multirow{2}{*}{Join operation}  \\[6pt]
-	\verb=\Join_{i\in \omega} x_i=		& \( \Join_{i\in \omega} x_i \) & \\ \midrule
 	\verb=\abs{x}= 					& \( \abs{x} \) & Absolute value\\ \midrule
 	\verb=\dom= 					& \( \dom \) & Domain \\ \midrule
 	\verb=\rng= 					& \( \rng \) & Range\\ \midrule
@@ -289,10 +342,21 @@
 	\tab \verb=f \compose g=	            		& &\\ \midrule
 	\verb=\( \ensuretext{blah} \)=	           	& \multirow{2}{*}{\( \ensuretext{blah} \)}& \multirow{2}{*}{Types argument in text mode} \\
 	\tab \verb=\ensuretext{blah}=			& & \\
-
 	\bottomrule
 \end{tabular}          \\
 \newpage
+
+\subsection{Operators}
+Misc operators used in logic and computability.  To disable these commands pass the option \verb=nooperators=.\\
+
+\begin{tabular}{l |  l | l}\toprule
+\verb=x \meet y= 				& \( x \meet y \) & \multirow{2}{*}{Meet operation} \\[6pt]
+	\verb=\Meet_{i\in \omega} x_i=		& \( \Meet_{i\in \omega} x_i \) & \\ \midrule
+	\verb=x \join y= 				& \(x  \join y \) & \multirow{2}{*}{Join operation}  \\[6pt]
+	\verb=\Join_{i\in \omega} x_i=		& \( \Join_{i\in \omega} x_i \) & \\ \midrule
+	\verb=x \xor y=						& \( x \xor y \)  & \\ \bottomrule
+\end{tabular}          \\	
+
 \subsection{Set Notation}
 To disable these commands pass the option \verb=nosets=.\\
 
@@ -300,7 +364,6 @@
 
 \begin{tabular}{l |  l | l}\toprule
 	\verb=\set{(x,y)}{x > y}=	  &    \(   \set{(x,y)}{x > y} \)    & \multirow{2}{*}{Set notation}  \\[6pt]
-	\verb=\set{(x,y)}{}=		  &    \(   \set{(x,y)}{}      \)    &  \\ \midrule
 	\verb=\set{(x,y)}=			  & 	\(   \set{(x,y)}      \)    &  \\ \midrule
 	\verb=\card{X}=                          &    \(   \card{X}                   \)    & Cardinality \\ \midrule
 	\verb=X \union Y=                        &    \(   X \union Y                 \)    & \multirow{2}{*}{Union}  \\[6pt]
@@ -314,9 +377,9 @@
 	\verb=x \nin A=                          &    \(   x \nin A                   \)    &  not an element\\ \midrule
 	\verb=\setcmp{X}=                        &    \(   \setcmp{X}                 \)    &  Set compliment\\\midrule
 	\verb=X \setdiff Y=                     &    \(   X \setdiff Y              \)    & Set difference \\ \midrule
-	\verb=X \symdiff Y=                      &    \(   X \symdiff Y               \)    & Symmetric difference \\ \midrule
-	\verb=\interior X=                       &    \(   \interior X                \)    & Interior \\ \midrule
-	\verb=\closure X=                        &    \(   \closure X                 \)    & Closure \\ \midrule
+	\verb=X \symdiff Y=                      &    \(   X \symdiff Y               \)    & Symmetric difference \\ \bottomrule
+	% \verb=\interior X=                       &    \(   \interior X                \)    & Interior \\ \midrule
+	% \verb=\closure X=                        &    \(   \clos X                 \)    & Closure \\ \midrule
 		\bottomrule
 	\end{tabular}          \\
 
@@ -420,7 +483,7 @@
 To disable these commands pass the option \verb=nosubfuns=.\\
 
 \begin{tabular}{l |  l | l}\toprule
-	\verb=f \subfun g=		       & \( f \subfun g \) & \multirow{8}{*}{Varities of the function extension relation}        \\	\midrule
+	\verb=f \subfun g=		       & \( f \subfun g \) & Varieties of the function extension relation      \\	\midrule
 	\verb=f \supfun g=		       & \( f \supfun g \) &  \\ 	\midrule
 	\verb=f \nsubfun g=		       & \( f \nsubfun g \) & \\	\midrule
 \verb=f \nsupfun g=		       & \( f \nsupfun g \) & \\	\midrule
@@ -616,6 +679,8 @@
 \section{Release Notes}
 
 \begin{itemize}
+	\item[3.01] 02/17/2019 - Fixed \verb=\RE= \verb=\CE= \verb=\Re= and \verb=\Ce= for the various capitalized versions.  Fixed weird bug with \verb=\recfnl= no longer working based on let.  Removed \verb=\interior= and \\verb=\closure= as not really appropriate commands for the package and having bugs.  Also fixed package to have correct version.
+	\item[3.0] 02/16/2019 - Added requirements environment for multiple requirements.  Changed the \verb=\req= and \verb=\require= commands to take their optional argument after the first mandatory arguments as well as before.  Added the commands \verb=\module= and \verb=\modof= and \verb=\xor=.  Improved the corner quotes. Added \verb=\leftofeq=, \verb=\rightof=, \verb=\rightofeq=.  Added \verb=\RE=, \verb=\CE=, \verb=\Ce=, \verb=\Re= and  \verb=\Tincompat=, \verb=\Tincomp=, \verb=\Tcompat=.  Changed the way strings are symbolized and coded.  Fixed suffix commands to work with unicode-math.  Also added \verb=\require*= inside \verb=\requirements=. Added \verb=\nleftofeq=, \verb=\nrightof=, \verb=\nrightofeq=, \verb=\nleftof=.  The commands \verb=\ancestor=, \verb=\descendant= etc... \verb=\reqof=, \verb=\Astages= and \verb=\Vstages=now require the option suppPriorityTrees be passed to the class to use and should be viewed as depreciated.  Fixed the options system so different symbols can be correctly passed to the class.    Changed the way \verb=\recf= works to comply with the usual syntax.
 	\item[2.4.3] 11/29/2018 - Rendered compatible with beamer by removing enumitem requirement if beamer is loaded.
 	\item[2.4.2] 11/29/2018 - Fixed horrible bugs introduced in last version and fixed many symbols to work even in pdflatex mode.  Also have everything compiling again.
 	\item[2.4.1] 2/14/2018 - Moved to using xparse to define the case macros and several other macros to allow nested brackets for optional arguments.  Added the recf command and cleaned up some option processing.  Also worked around the mathtools/unicode-math font bug described \href{https://tex.stackexchange.com/questions/335164/incompatibility-with-mathtools-and-unicode-math-in-xelatex/335177}{here}

Modified: trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty	2019-02-17 23:02:03 UTC (rev 50046)
+++ trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty	2019-02-17 23:02:19 UTC (rev 50047)
@@ -1,5 +1,5 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rec-thy}[2017/12/31 v2.3  Provides commands for writing up recursion theory papers]
+\ProvidesPackage{rec-thy}[2019/02/17 v3.01  Provides commands for writing up recursion theory papers]
 \makeatletter
 % \newcommand*{\@curpack}{\@currname} %rec-thy.sty
 \newcommand*{\@packinfo}[1]{\PackageInfo{rec-thy}{#1}}
@@ -100,7 +100,10 @@
 \newif\ifrecthy at nosubfun \recthy at nosubfunfalse
 \newif\ifrecthy at nopfcases \@ifclassloaded{beamer}{\recthy at nopfcasestrue}{\recthy at nopfcasesfalse}
 \newif\ifrecthy at noprioritytrees \recthy at noprioritytreesfalse
+\newif\ifrecthy at nosuppprioritytrees \recthy at nosuppprioritytreestrue
 \newif\ifrecthy at hyperreqs \recthy at hyperreqstrue
+\newif\ifrecthy at nooperators \recthy at nooperatorsfalse
+%\newif\ifrecthy at nomodule \recthy at nomodulefalse
 
 \DeclareOptionX{nohyphenation}{\recthy at nohyphenationtrue}
 \DeclareOptionX{mrref}{\recthy at mrreftrue}
@@ -125,11 +128,20 @@
 \DeclareOptionX{nosubfun}{\recthy at nosubfuntrue}
 \DeclareOptionX{nopfcases}{\recthy at nopfcasestrue}
 \DeclareOptionX{noprioritytrees}{\recthy at noprioritytreestrue}
+\DeclareOptionX{suppPriorityTrees}{\recthy at nosuppprioritytreesfalse}
 \DeclareOptionX{nohyperreqs}{\recthy at hyperreqsfalse}
+\DeclareOptionX{nooperators}{\recthy at nooperatorstrue}
+%\DeclareOptionX{nomodule}{\recthy at nomoduletrue}
 
 \DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}}
 
+\let\@recthy at modulescr\mathcal
+\DeclareOptionX{modulescr}[mathcal]{\letcs{\@recthy at modulescr}{#1}}
 
+\def\@recthy at ballsymb@default{\mathscr{B}}
+\let\@recthy at ballsymb\@recthy at ballsymb@default
+\DeclareOptionX{ballsymb}[@recthy at ballsymb@default]{\letcs{\@recthy at ballsymb}{#1}}
+
 \AtEndOfPackage{
     \ifrecthy at noprioritytrees
         \@packinfo{Not loading Priority Tree Helper}
@@ -138,19 +150,43 @@
         \providecommand{\PriorityTree}{\mathbb{T}}
         \providecommand{\tpath}[1][]{\ifthenelse{\isempty{#1}}{\symbf{f}}{\mathbb{f}_{#1}}}
         \providecommand{\leftof}{\mathbin{<_L}}
-        \providecommand{\ball}[3][]{{\ifdefined\symbf
-                                        \symbf{\alpha}
-                                      \else
-                                        \alpha
-                                      \fi}^{#1}(#2, #3)}
-        \providecommand*{\Astages}[1]{\mathcal{S}_{\text{act}}^{#1}}
-        \providecommand*{\Vstages}[1]{\mathcal{S}^{#1}}
+        \providecommand{\leftofeq}{\mathbin{\leq_L}}
+        \providecommand{\rightof}{\mathbin{>_L}}
+        \providecommand{\rightofeq}{\mathbin{\geq_L}}
+        \providecommand{\nleftof}{\mathbin{\nless_L}}
+        \providecommand{\nleftofeq}{\mathbin{\nleq_L}}
+        \providecommand{\nrightof}{\mathbin{\ngtr_L}}
+        \providecommand{\nrightofeq}{\mathbin{\ngeq_L}}
+        \NewDocumentCommand{\PriorityTreeModule}{mO{}m}{\ensuremath{{\@recthy at modulescr{#1}}^{#2}_{#3} }}
+        \let\module=\PriorityTreeModule
+        \providecommand{\ball}[3][]{{\@recthy at ballsymb}^{#1}(#2, #3)}
+    \fi
+
+}
+
+
+\AtEndOfPackage{
+    \ifrecthy at nosuppprioritytrees
+        \@packinfo{Not loading Priority Tree Supplemental Helper}
+    \else
+        \providecommand*{\Astages}[1]{\mathcal{A}({#1})}
+        \providecommand*{\Vstages}[1]{\mathcal{V}(#1)}
         \providecommand{\reqof}[2][]{\mathbb{r}(#2)}
+        \let\modof=\reqof
+        \providecommand{\ancestor}{\succ}
+        \providecommand{\descendant}{\prec}
+        \providecommand{\ancestoreq}{\succeq}
+        \providecommand{\descendanteq}{\preceq}
+        \let\ances=\ancestor
+        \let\anceseq=\ancestoreq
+        \let\desc=\descendant
+        \let\desceq=\descendanteq
     \fi
+
 }
 
-\let\pmg at casefont=\textsc
-\DeclareOptionX{pfcasefont}{\edef\pmg at casefont{\expandafter\noexpand\csname #1 \endcsname}}
+\let\pmg at casefont\textsc
+\DeclareOptionX{pfcasefont}[textsc]{\letcs{\pmg at casefont}{#1}}
 
 \AtEndOfPackage{
     \ifrecthy at nopfcases
@@ -266,9 +302,8 @@
 
 
 
-% \newcommand*{\@recthy at reqscr}[1]{\mathscr{#1}}
-\let\@recthy at reqscr=\mathscr
-\DeclareOptionX{reqscr}{\edef\@recthy at reqscr{\expandafter\noexpand\csname #1 \endcsname}}
+\let\@recthy at reqscr\mathscr
+\DeclareOptionX{reqscr}[mathscr]{\letcs{\@recthy at reqscr}{#1}}
 
 
 \AtEndOfPackage{
@@ -277,17 +312,15 @@
 \else
     \@packinfo{Loading requirement assist.}
     \newcommand*{\req at orig}[3][]{\ensuremath{\ifthenelse{\isempty{#1}}{\@recthy at reqscr{#2}_{#3}}{\@recthy at reqscr{#2}^{#1}_{#3}}}}
+
+    \NewDocumentCommand{\req at href}{O{}mO{}m}{\@ifundefined{hyperref}{\req at orig[#1#3]{#2}{#4}}{\hyperref[\detokenize{req:#2@#1#3}]{\req at orig[#1#3]{#2}{#4}}}}
+    \NewDocumentCommand{\req at nohref}{O{}mO{}m}{\req at orig[#1#3]{#2}{#4}}
     \ifrecthy at hyperreqs
-        \newcommand*{\req}[3][]{
-        \@ifundefined{hyperref}{
-            \req at orig[#1]{#2}{#3}
-        }{
-            \hyperref[\detokenize{req:#2@#1}]{\req at orig[#1]{#2}{#3}}
-        }}
+        \let\req=\req at href
     \else
-        \let\req=\req at orig
+        \let\req=\req at nohref
     \fi
-    \WithSuffix\def\req*{\req at orig}
+    \WithSuffix\def\req*{\req at nohref}
     % \newsavebox{\@recthy at reqbox}
     % \def\defreq#1#2\par{
     %   \begin{equation}\let\veqno\@@leqno%
@@ -316,17 +349,46 @@
         % \let\maketag@@@=\maketag@@@orig at pmg  
     }
 
-    \newenvironment{require}[3][]{
-        \begin{requirement}{\req*[#1]{#2}{#3}} \label{\detokenize{req:#2@#1}}
+    \NewDocumentEnvironment{require}{O{}mO{}m}{
+        \begin{requirement}{\req at nohref[#1#3]{#2}{#4}} \label{\detokenize{req:#2@#1#3}}%
     }{
-        \end{requirement}
+        \end{requirement}%
     }
-    \newenvironment{require*}[3][]{
-        \begin{requirement}{\req*[#1]{#2}{#3}} \label{\detokenize{req:#2@#1}}
+    % \NewDocumentEnvironment{require*}{O{}mO{}m}{
+    %     \begin{requirement}{\req at nohref[#1#3]{#2}{#4}}%
+    % }{
+    %     \end{requirement}%
+    % }
+    \NewDocumentCommand{\refreq}{O{}mO{}}{\ref{\detokenize{req:#2@#1#3}}}
+
+    \NewDocumentCommand{\require at nested}{sO{}mO{}m}{
+        \IfBooleanTF{#1}{\tag{\req at nohref[#2#4]{#3}{#5}}}{\tag{\req at nohref[#2#4]{#3}{#5}}\label{\detokenize{req:#3@#2#4}}}
+    }
+    % \newcommand*{\require at nested}{\require at nested@href}
+    % \WithSuffix\def\require at nested*{\require at nested@nohref}
+        % \NewDocumentEnvironment{require*}{O{}mO{}m}{
+        %     \tag{\req at nohref[#1#3]{#2}{#4}}%
+        % }{}
+
+
+    \NewDocumentEnvironment{requirements}{}{
+        \let\@origif at fleqn@pmg=\if at fleqn
+        \let\@origiftagsleft at pmg=\iftagsleft@
+        \@fleqntrue
+        \setlength\@mathmargin{1.5cm}
+        \tagsleft at true
+        \usetagform{colon}
+        \let\require=\require at nested
+        % \let\maketag@@@orig at pmg=\maketag@@@
+        % \def\maketag@@@#1{\hbox{\m at th\normalfont#1:}}
+        \gather
     }{
-        \end{requirement}
+        \endgather
+        \let\if at fleqn=\@origif at fleqn@pmg
+        \let\iftagsleft@=\@origiftagsleft at pmg
+        \usetagform{default}
+        % \let\maketag@@@=\maketag@@@orig at pmg  
     }
-    \newcommand*{\refreq}[2][]{\ref{\detokenize{req:#2@#1}}}
 
 \fi
 }
@@ -405,11 +467,7 @@
         \DeclareMathOperator{\Ord}{Ord}
     \fi
 
-    \providecommand*{\meet}{\mathbin{\wedge}}
-    \providecommand*{\join}{\mathbin{\vee}}
-    \providecommand*{\Meet}{\mathop{\bigwedge}}
-    \let\MnJoin=\Join
-    \renewcommand*{\Join}{\mathop{\bigvee}}
+
     \recthy at strip{abs}
     \ifdefined\dom
     \else
@@ -438,27 +496,23 @@
 }
 
 
-
-% corner quotes From Sam Buss http://www.phil.cam.ac.uk/teaching_staff/Smith/LaTeX/resources/godelquotes.txt
-\newbox\@recthy at gnBoxA
-\newdimen\@recthy at gnCornerHgt
-\setbox\@recthy at gnBoxA=\hbox{$\ulcorner$}
-\global\@recthy at gnCornerHgt=\ht\@recthy at gnBoxA
-\newdimen\@recthy at gnArgHgt
-
-\newcommand{\@recthy at godelnum}[1]{%
-    \setbox\@recthy at gnBoxA=\hbox{$#1$}%
-    \@recthy at gnArgHgt=\ht\@recthy at gnBoxA%
-    \ifnum \@recthy at gnArgHgt<\@recthy at gnCornerHgt
-        \@recthy at gnArgHgt=0pt%
+\AtEndOfPackage{
+\ifrecthy at nooperators
+    \@packinfo{No operators loading.}
+\else
+    \@packinfo{Operators loading.}
+        \providecommand*{\meet}{\mathbin{\wedge}}
+    \providecommand*{\join}{\mathbin{\vee}}
+    \providecommand*{\Meet}{\mathop{\bigwedge}}
+    \let\MnJoin=\Join
+    \renewcommand*{\Join}{\mathop{\bigvee}}
+    \ifdefined\xor
     \else
-        \advance \@recthy at gnArgHgt by -\@recthy at gnCornerHgt%
+        \DeclareMathOperator{\xor}{xor}
     \fi
-    \raise\@recthy at gnArgHgt\hbox{$\ulcorner$} \box\@recthy at gnBoxA %
-        \raise\@recthy at gnArgHgt\hbox{$\urcorner$}}
+\fi
+}
 
-
-
 \newcommand*{\@recthy at llangle}{\mathopen{\langle\!\langle}}
 \newcommand*{\@recthy at rrangle}{\mathclose{\rangle\!\rangle}}
 
@@ -468,7 +522,34 @@
 \ifrecthy at nodelim
     \@packinfo{No delimiters loading.}
 \else
-    \newcommand*{\godelnum}[1]{\@recthy at godelnum{#1}}
+    \ltx at ifpackageloaded{MnSymbol}{}{ 
+    \DeclareFontFamily{OMX}{MnSymbolE}{}
+    \DeclareSymbolFont{MnLargeSymbols}{OMX}{MnSymbolE}{m}{n}
+    \SetSymbolFont{MnLargeSymbols}{bold}{OMX}{MnSymbolE}{b}{n}
+    \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{
+        <-6>  MnSymbolE5
+       <6-7>  MnSymbolE6
+       <7-8>  MnSymbolE7
+       <8-9>  MnSymbolE8
+       <9-10> MnSymbolE9
+      <10-12> MnSymbolE10
+      <12->   MnSymbolE12
+    }{}
+    \DeclareFontShape{OMX}{MnSymbolE}{b}{n}{
+        <-6>  MnSymbolE-Bold5
+       <6-7>  MnSymbolE-Bold6
+       <7-8>  MnSymbolE-Bold7
+       <8-9>  MnSymbolE-Bold8
+       <9-10> MnSymbolE-Bold9
+      <10-12> MnSymbolE-Bold10
+      <12->   MnSymbolE-Bold12
+    }{}
+    \DeclareMathDelimiter{\ulcorner}
+        {\mathopen}{MnLargeSymbols}{'036}{MnLargeSymbols}{'036}
+    \DeclareMathDelimiter{\urcorner}
+        {\mathclose}{MnLargeSymbols}{'043}{MnLargeSymbols}{'043}
+}
+    \newcommand*{\godelnum}[1]{\left\ulcorner #1 \right\urcorner}
     \let\cornerquote=\godelnum
     \let\gcode=\godelnum
     \recthy at strip{llangle}
@@ -478,6 +559,10 @@
 
 \newcommand*{\@recthy at re}{\@recthy at ensuretext{r.e.\ }}
 \newcommand*{\@recthy at ce}{\@recthy at ensuretext{c.e.\ }}
+\newcommand*{\@recthy at RE}{\@recthy at ensuretext{R.E.\ }}
+\newcommand*{\@recthy at CE}{\@recthy at ensuretext{C.E.\ }}
+\newcommand*{\@recthy at Re}{\@recthy at ensuretext{R.e.\ }}
+\newcommand*{\@recthy at Ce}{\@recthy at ensuretext{C.e.\ }}
 \newcommand*{\@recthy at recursive}{\@recthy at ensuretext{recursive}}
 \newcommand*{\@recthy at computable}{\@recthy at ensuretext{computable}}
 \newcommand*{\@recthy at recursivelyEnumerable}{\@recthy at ensuretext{recursively enumerable}}
@@ -487,10 +572,37 @@
 \newcommand*{\@recthy at RecursivelyEnumerable}{\@recthy at ensuretext{Recursively enumerable}}
 \newcommand*{\@recthy at ComputablyEnumerable}{\@recthy at ensuretext{Computably enumerable}}
 \newcommand*{\@recthy at REA}{\ensuremath{\text{REA}}}
-\WithSuffix\def\@recthy at REA[#1]{#1-\REA\relax}
+\WithSuffix\def\@recthy at REA[#1]{#1-\@recthy at REA\relax}
 \newcommand*{\@recthy at CEA}{\ensuremath{\text{CEA}}}
-\WithSuffix\def\@recthy at CEA[#1]{#1-\CEA\relax}
+\WithSuffix\def\@recthy at CEA[#1]{#1-\@recthy at CEA\relax}
 
+\DeclareOptionX{reterms}{%
+    \let\@recthy at ce=\@recthy at re
+    \let\@recthy at computable=\@recthy at recursive
+    \let\@recthy at computablyEnumerable=\@recthy at recursivelyEnumerable
+    \let\@recthy at ComputablyEnumerable=\@recthy at RecursivelyEnumerable
+    } %Make all references to ce change to re
+
+    \DeclareOptionX{reaterms}{%
+        \let\@recthy at CEA=\@recthy at REA
+        }
+
+\DeclareOptionX{ceterms}{%
+    \let\@recthy at re=\@recthy at ce
+    \let\@recthy at recursive=\@recthy at computable
+    \let\@recthy at recursivelyEnumerable=\@recthy at computablyEnumerable
+    \let\@recthy at RecursivelyEnumerable=\@recthy at ComputablyEnumerable
+    } %Make all references to re change to ce
+
+\DeclareOptionX{ceaterms}{%
+            \let\@recthy at REA=\@recthy at CEA
+            }
+\DeclareOptionX{reaterms}{%
+            \let\@recthy at CEA=\@recthy at REA
+            }
+
+
+
 \AtEndOfPackage{
 \ifrecthy at nonames
     \@packinfo{No names loading.}
@@ -498,6 +610,10 @@
     \@packinfo{Names loading.}
     \recthy at strip{re}
     \recthy at strip{ce}
+    \recthy at strip{RE}
+    \recthy at strip{CE}
+    \recthy at strip{Re}
+    \recthy at strip{Ce}
     \recthy at strip{REA}
     \recthy at strip{CEA}
     \recthy at strip{recursive}
@@ -511,27 +627,7 @@
 \fi
 }
 
-\DeclareOptionX{reterms}{%
-    \let\@recthy at ce=\@recthy at re
-    \let\@recthy at computable=\@recthy at recursive
-    \let\@recthy at computablyEnumerable=\@recthy at recursivelyEnumerable
-    \let\@recthy at ComputablyEnumerable=\@recthy at RecursivelyEnumerable
-    } %Make all references to ce change to re
 
-    \DeclareOptionX{reaterms}{%
-        \let\@recthy at CEA=\@recthy at REA
-        }
-
-\DeclareOptionX{ceterms}{%
-    \let\@recthy at re=\@recthy at ce
-    \let\@recthy at recursive=\@recthy at computable
-    \let\@recthy at recursivelyEnumerable=\@recthy at computablyEnumerable
-    \let\@recthy at RecursivelyEnumerable=\@recthy at ComputablyEnumerable
-    } %Make all references to re change to ce
-
-\DeclareOptionX{ceaterms}{%
-            \let\@recthy at REA=\@recthy at CEA
-            }
 % Set stuff
 
 
@@ -592,14 +688,14 @@
     \def\Cross{}
     \renewcommand*{\Cross}{\mathop{\Pi}}
     \providecommand*{\symdiff}{\mathbin{\Delta}}
-    \ifdefined\interior
-    \else
-        \DeclareMathOperator{\interior}{int}
-    \fi
-    \ifdefined\closure
-    \else
-        \DeclareMathOperator{\closure}{cl}
-    \fi
+    % \ifdefined\interior
+    % \else
+    %     \DeclareMathOperator{\interior}{int}
+    % \fi
+    % \ifdefined\closure
+    % \else
+        % \DeclareMathOperator{\clos}{cl}
+    % \fi
 \fi
 }
 
@@ -608,36 +704,54 @@
     \@packinfo{No quants loading.}
 \else
     \@packinfo{Quants loading.}
-    \newcommand*{\existsuniq}{\exists !}
-    \newcommand*{\nexistsuniq}{\nexists !}
-    \WithSuffix\def\existsuniq(#1){\left(\existsuniq\, #1 \right)\!}
-    \WithSuffix\def\nexistsuniq(#1){\left(\nexistsuniq\, #1 \right)\!}
-    \WithSuffix\def\existsuniq[#1]{\left[\existsuniq\, #1 \right]\!}
-    \WithSuffix\def\nexistsuniq[#1]{\left[\nexistsuniq\, #1 \right]\!}
+    \AtBeginDocument{
+        \let\exists at orig@recthy=\exists
+        \let\forall at orig@recthy=\forall
+        \newcommand*{\exists at recthy}{\exists at orig@recthy}
+        \newcommand*{\forall at recthy}{\forall at orig@recthy}
+        \let\nexists at orig@recthy=\nexists
+        \newcommand*{\nexists at recthy}{\nexists at orig@recthy}
+        \let\nforall at orig@recthy=\nforall
+        \newcommand*{\nforall at recthy}{\nforall at orig@recthy}
+        \newcommand*{\existsuniq}{\exists at orig@recthy !}
+        \newcommand*{\nexistsuniq}{\nexists at orig@recthy !}
+        \WithSuffix\def\existsuniq(#1){\left(\existsuniq #1 \right)\!}
+        \WithSuffix\def\nexistsuniq(#1){\left(\nexistsuniq #1 \right)\!}
+        \WithSuffix\def\existsuniq[#1]{\left[\existsuniq #1 \right]\!}
+        \WithSuffix\def\nexistsuniq[#1]{\left[\nexistsuniq #1 \right]\!}
 
-    \newcommand*{\forallae}{\forall^{*}}
-    \WithSuffix\def\forallae(#1){\left(\forallae\, #1\right)\!}
-    \WithSuffix\def\forallae[#1]{\left[\forallae\, #1\right]\!}
+        \newcommand*{\forallae}{\forall at orig@recthy^{*}}
+        \WithSuffix\def\forallae(#1){\left(\forallae #1\right)\!}
+        \WithSuffix\def\forallae[#1]{\left[\forallae #1\right]\!}
 
-    \providecommand*{\existsinf}{\exists^{\infty}}
-    \WithSuffix\def\existsinf(#1){\left(\existsinf\, #1\right)\!}
-    \WithSuffix\def\existsinf[#1]{\left[\existsinf\, #1\right]\!}
+        \newcommand*{\nforallae}{\nforall at orig@recthy^{*}}
+        \WithSuffix\def\nforallae(#1){\left(\nforallae #1\right)\!}
+        \WithSuffix\def\nforallae[#1]{\left[\nforallae #1\right]\!}
 
-    \providecommand*{\nexistsinf}{\nexists^{\infty}}
-    \WithSuffix\def\nexistsinf(#1){\left(\nexistsinf\, #1\right)\!}
-    \WithSuffix\def\nexistsinf[#1]{\left[\nexistsinf\, #1\right]\!}
+        \providecommand*{\existsinf}{\exists at orig@recthy^{\infty}}
+        \WithSuffix\def\existsinf(#1){\left(\existsinf #1\right)\!}
+        \WithSuffix\def\existsinf[#1]{\left[\existsinf #1\right]\!}
 
-    \WithSuffix\def\exists(#1){\left(\exists\, #1 \right)\!}
-    \WithSuffix\def\forall(#1){\left(\forall\, #1 \right)\!}
-    \WithSuffix\def\nexists(#1){\left(\nexists\, #1 \right)\!}
-    \WithSuffix\def\exists[#1]{\left[\exists\, #1 \right]\!}
-    \WithSuffix\def\forall[#1]{\left[\forall\, #1 \right]\!}
-    \WithSuffix\def\nexists[#1]{\left[\nexists\, #1 \right]\!}
-    \WithSuffix\def\forall*{\forallae}
-    \WithSuffix\def\exists*{\existsinf}
-    \WithSuffix\def\nexists*{\nexistsinf}
-    \WithSuffix\def\exists!{\existsuniq}
+        \providecommand*{\nexistsinf}{\nexists^{\infty}}
+        \WithSuffix\def\nexistsinf(#1){\left(\nexistsinf #1\right)\!}
+        \WithSuffix\def\nexistsinf[#1]{\left[\nexistsinf #1\right]\!}
 
+        \WithSuffix\def\exists at recthy(#1){\left(\exists #1 \right)\!}
+        \WithSuffix\def\forall at recthy(#1){\left(\forall #1 \right)\!}
+        \WithSuffix\def\nexists at recthy(#1){\left(\nexists #1 \right)\!}
+        \WithSuffix\def\exists at recthy[#1]{\left[\exists #1 \right]\!}
+        \WithSuffix\def\forall at recthy[#1]{\left[\forall #1 \right]\!}
+        \WithSuffix\def\nexists at recthy[#1]{\left[\nexists #1 \right]\!}
+        \WithSuffix\def\forall at recthy*{\forallae}
+        \WithSuffix\def\nforall at recthy*{\nforallae}
+        \WithSuffix\def\exists at recthy*{\existsinf}
+        \WithSuffix\def\nexists at recthy*{\nexistsinf}
+        \WithSuffix\def\exists at recthy!{\existsuniq}
+        \let\exists=\exists at recthy
+        \let\forall=\forall at recthy
+        \let\nexists=\nexists at recthy
+        \let\nforall=\nforall at recthy
+    }
 
 
 
@@ -651,9 +765,13 @@
 
     \providecommand*{\liff}{\ensuremath{\leftrightarrow}}
     \providecommand*{\limplies}{\ensuremath{\rightarrow}}
+
 \fi
 }
 
+
+
+
 \AtEndOfPackage{
 \ifrecthy at nospaces
     \@packinfo{No spaces loading.}
@@ -673,14 +791,18 @@
 
 
 %Strings
-\def\@recthy at concatSYM{\widehat{\;}}
-\def\@recthy at EmptyStr{\mathopen{\@recthy at llangle}\mathclose{\@recthy at rrangle}}
+\def\@recthy at concatSYM@Default{\widehat{\phantom{X}}}
+\def\@recthy at EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
+\let\@recthy at concatSYM\@recthy at concatSYM@Default
+\let\@recthy at EmptyStr\@recthy at EmptyStr@Default
 
+\DeclareOptionX{emptystr}[@recthy at EmptyStr@Default]{\letcs{\@recthy at EmptyStr}{#1}}
+\DeclareOptionX{concatsym}[@recthy at concatSYM@Default]{\letcs{\@recthy at concatSYM}{#1}}
+\newcommand*{\@recthy at pair}[2]{\mathopen{\@recthy at llangle} #1, #2 \mathclose{\@recthy at rrangle}}
 
-\DeclareOptionX{emptystr}{\edef\@recthy at EmptyStr{\expandafter\noexpand\csname #1 \endcsname}}
-\DeclareOptionX{concatsym}{\edef\@recthy at concatSYM{\expandafter\noexpand\csname #1 \endcsname}}
+\NewDocumentCommand{\incompat at recthy}{o}{\mathrel{\mid}\IfValueTF{#1}{_{#1}}{}}
+\NewDocumentCommand{\compat at recthy}{o}{\mathrel{\not\mid}\IfValueTF{#1}{_{#1}}{}}
 
-
 \AtEndOfPackage{
 \ifrecthy at nostrings
     \@packinfo{No strings loading.}
@@ -687,26 +809,29 @@
 \else
     \@packinfo{Strings loading.}
         \newcommand*{\closedn}[1]{{#1}^\blacktriangledown}
-    \newcommand*{\str}[1]{\mathopen{\@recthy at llangle}#1\mathclose{\@recthy at rrangle}}
-    \newcommand*{\code}{\str}
+    \newcommand*{\str}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
+    \newcommand*{\code}[1]{\mathopen{\@recthy at llangle}#1\mathclose{\@recthy at rrangle}}
     \newcommand*{\EmptyStr}{\@recthy at EmptyStr}
     \newcommand*{\estr}{\EmptyStr}
     \newcommand*{\decode}[2]{(#1)_{#2}}
-    \providecommand*{\godelpair}[2]{\mathopen{\langle} #1, #2 \mathclose{\rangle}}
-    \newcommand*{\gpair}{\godelpair}
-    \newcommand*{\concat}{\mathbin{\@recthy at concatSYM}}
+    \let\godelpair=\@recthy at pair
+    \let\gpair=\@recthy at pair
+    \newcommand*{\concat}{\@recthy at concatSYM}
     \WithSuffix\def\concat[#1]{\concat\str{#1}}
     \newcommand*{\strpred}[1]{{#1}^{-}}
     \providecommand*{\lh}[2][]{\@recthy at abs{#2}_{#1}} %% Gives length of a string
-    \providecommand*{\incompat}{\mathrel{\mid}} %incompatible stringes FIX SPACING
-    \providecommand*{\incomp}{\incompat}
-    \providecommand*{\compat}{\mathrel{\nmid}}
+
+    \providecommand*{\incompat}{\incompat at recthy} %incompatible stringes FIX SPACING
+    \providecommand*{\incomp}{\incompat at recthy}
+    \providecommand*{\compat}{\compat at recthy}
+    \providecommand*{\nincompat}{\compat at recthy}
+    \providecommand*{\nincomp}{\compat at recthy}
     \newcommand*{\setcol}[2]{{#1}^{[#2]}}
     \ifrecthy at nopair
         \@packinfo{No redefining pair.}
     \else
         \@packinfo{pair=godelpair.}
-        \newcommand*{\pair}{\godelpair}
+        \let\pair=\@recthy at pair
     \fi
 \fi
 }
@@ -740,34 +865,62 @@
     \@packinfo{No setrels loading.}
 \else
     \@packinfo{setrels loading.}
+    \AtBeginDocument{
+        \providecommand*{\nsupset}{\not\supset at recthy@orig}
+        \providecommand*{\nsubset}{\not\subset at recthy@orig}
+        \let\nsubset at recthy@orig=\nsubset
+        \let\nsupset at recthy@orig=\nsupset
+        \let\subset at recthy@orig=\subset
+        \let\supset at recthy@orig=\supset
+        \let\subseteq at recthy@orig=\subseteq
+        \let\supseteq at recthy@orig=\supseteq
+        \let\subsetneq at recthy@orig=\subsetneq
+        \let\supsetneq at recthy@orig=\supsetneq
+        \newcommand*{\subset at recthy}{\subset at recthy@orig}
+        \newcommand*{\supset at recthy}{\supset at recthy@orig}
+        \newcommand*{\subseteq at recthy}{\subseteq at recthy@orig}
+        \newcommand*{\supseteq at recthy}{\supseteq at recthy@orig}
+        \newcommand*{\nsubset at recthy}{\nsubset at recthy@orig}
+        \newcommand*{\nsupset at recthy}{\nsupset at recthy@orig}
+        \newcommand*{\nsubseteq at recthy}{\nsubseteq at recthy@orig}
+        \newcommand*{\nsupseteq at recthy}{\nsupseteq at recthy@orig}
+        \WithSuffix\def\subset at recthy*{\subset at recthy@orig^{*}}
+        \WithSuffix\def\supset at recthy*{\supset at recthy@orig^{*}}
+        \WithSuffix\def\subseteq at recthy*{\subseteq at recthy@orig^{*}}
+        \WithSuffix\def\supseteq at recthy*{\supseteq at recthy@orig^{*}}
+        \WithSuffix\def\subsetneq at recthy*{\subsetneq at recthy@orig^{*}}
+        \WithSuffix\def\supsetneq at recthy*{\supsetneq at recthy@orig^{*}}
+        \WithSuffix\def\nsubset at recthy*{\nsubset^{*}}
+        \WithSuffix\def\nsupset at recthy*{\nsupset^{*}}
+        \WithSuffix\def\nsubseteq at recthy*{\nsubseteq^{*}}
+        \WithSuffix\def\nsupseteq at recthy*{\nsupseteq^{*}}
+        \let\subset=\subset at recthy
+        \let\supset=\supset at recthy
+        \let\subseteq=\subseteq at recthy
+        \let\supseteq=\supseteq at recthy
+        \let\subsetneq=\subsetneq at recthy
+        \let\supsetneq=\supsetneq at recthy
+        \let\nsubset=\nsubset at recthy
+        \let\nsupset=\nsupset at recthy
+        \let\nsubseteq=\nsubseteq at recthy
+        \let\nsupseteq=\nsupseteq at recthy
 
-    \WithSuffix\def\subset*{\subset^{*}}
-    \WithSuffix\def\supset*{\supset^{*}}
-    \WithSuffix\def\subseteq*{\subseteq^{*}}
-    \WithSuffix\def\supseteq*{\supseteq^{*}}
-    \providecommand*{\nsupset}{\not\supset}
-    \providecommand*{\nsubset}{\not\subset}
-    \WithSuffix\def\nsubset*{\nsubset^{*}}
-    \WithSuffix\def\nsupset*{\nsupset^{*}}
-    \WithSuffix\def\nsubseteq*{\nsubseteq^{*}}
-    \WithSuffix\def\nsupseteq*{\nsupseteq^{*}}
-    % \WithSuffix\def\subsetneq*{\subsetneq^{*}}
-    % \WithSuffix\def\supsetneq*{\supsetneq^{*}}
 
-    \newcommand*{\eq}{=}
-    \WithSuffix\def\eq*{=^{*}}
-    \newcommand*{\eqae}{=^{*}}
-        \newcommand*{\neqae}{\neq^{*}}
-    \WithSuffix\def\neq*{\neq^{*}}
+        \newcommand*{\eq}{=}
+        \WithSuffix\def\eq*{=^{*}}
+        \newcommand*{\eqae}{=^{*}}
+            \newcommand*{\neqae}{\neq^{*}}
+        \WithSuffix\def\neq*{\neq^{*}}
 
-    \newcommand*{\infsubset}{\subset_{\infty}}
-    \WithSuffix\def\infsubset*{\infsubset^{*}}
-    \let\subsetnaeq=\infsubset
-    \newcommand*{\infsupset}{\supset_{\infty}}
-    \WithSuffix\def\infsupset*{\infsupset^{*}}
-    \let\supsetnaeq=\infsupset
-    \newcommand*{\majsubset}{\subset_{m}}
-    \newcommand*{\majsupset}{\supset_{m}}
+        \newcommand*{\infsubset}{\subset_{\infty}}
+        \WithSuffix\def\infsubset*{\infsubset^{*}}
+        \let\subsetnaeq=\infsubset
+        \newcommand*{\infsupset}{\supset_{\infty}}
+        \WithSuffix\def\infsupset*{\infsupset^{*}}
+        \let\supsetnaeq=\infsupset
+        \newcommand*{\majsubset}{\subset_{m}}
+        \newcommand*{\majsupset}{\supset_{m}}
+    }
 \fi
 }
 
@@ -865,13 +1018,16 @@
 
 %%%%%%%%% Formula Classes
 
-\newcommand*{\@recthy at CDelta}{\prescript{\mathcal{C}}{}{\Delta}}
-\newcommand*{\@recthy at CSigma}{\prescript{\mathcal{C}}{}{\Sigma}}
-\newcommand*{\@recthy at CPi}{\prescript{\mathcal{C}}{}{\Pi}}
+\newcommand*{\@recthy at CDelta@default}{\prescript{\mathcal{C}}{}{\Delta}}
+\newcommand*{\@recthy at CSigma@default}{\prescript{\mathcal{C}}{}{\Sigma}}
+\newcommand*{\@recthy at CPi@default}{\prescript{\mathcal{C}}{}{\Pi}}
+\let\@recthy at CDelta=\@recthy at CDelta@default
+\let\@recthy at CSigma=\@recthy at CSigma@default
+\let\@recthy at CPi=\@recthy at CPi@default
 
-\DeclareOptionX{cdeltasym}{\edef\@recthy at CDelta{\expandafter\noexpand\csname #1 \endcsname}}
-\DeclareOptionX{csigmasym}{\edef\@recthy at CSigma{\expandafter\noexpand\csname #1 \endcsname}}
-\DeclareOptionX{cpisym}{\edef\@recthy at CPi{\expandafter\noexpand\csname #1 \endcsname}}
+\DeclareOptionX{cdeltasym}[@recthy at CDelta@default]{\letcs{\@recthy at CDelta}{#1}}
+\DeclareOptionX{csigmasym}[@recthy at CSigma@default]{\letcs{\@recthy at CSigma}{#1}}
+\DeclareOptionX{cpisym}[@recthy at CPi@default]{\letcs{\@recthy at CPi}{#1}}
 
 % \DeclareOptionX<\@recthy at family>{cdeltasym}[]{\def\@recthy at CDelta{#1}}
 % \DeclareOptionX<\@recthy at family>{csigmasym}[]{\def\@recthy at CSigma{#1}}
@@ -1267,10 +1423,16 @@
 }
 
 
-
+\def\@recthy at recfSYM@default{\phi}
+\let\@recthy at recfSYM=\@recthy at recfSYM@default
+\def\@recthy at recfnlSYM@default{\Phi}
+\let\@recthy at recfnlSYM=\@recthy at recfnlSYM@default
+\def\@recthy at useSYM@default{\ltx at ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}}
+\let\@recthy at useSYM=\@recthy at useSYM@default
 %%%ABREVIATIONS
-\DeclareOptionX{recfnlsym}[Phi]{\edef\recfnlSYM{\expandafter\noexpand\csname #1 \endcsname}}
-\DeclareOptionX{recfsym}[phi]{\edef\recfSYM{\expandafter\noexpand\csname #1 \endcsname}}
+\DeclareOptionX{recfnlsym}[@recthy at recfnlSYM@default]{\letcs{\@recthy at recfnlSYM}{#1}}
+\DeclareOptionX{recfsym}[@recthy at recfSYM@default]{\letcs{\@recthy at recfSYM}{#1}}
+\DeclareOptionX{usesym}[@recthy at useSYM@default]{\letcs{\@recthy at useSYM}{#1}}
 
 
 %Degree Classes
@@ -1293,12 +1455,11 @@
     \newcommand*{\murec}[2]{\ensuremath{\mu#1\left( #2 \right) }}
 
     %\newcommand*{\brecfSYM}{\phi}
-    \providecommand*{\recfSYM}{\phi}
-    \providecommand*{\recfnlSYM}{\Phi}
-    % \newcommand*{\recf}[3][]{\recfSYM^{#1}_{#2}\ifthenelse{\isempty{#3}}{}{\left(#3\right)}} %If give an empty arg just print function no parens
+
+    % \newcommand*{\recf}[3][]{\@recthy at recfSYM^{#1}_{#2}\ifthenelse{\isempty{#3}}{}{\left(#3\right)}} %If give an empty arg just print function no parens
     %\newcommand*{\brecf}[3][]{\brecfSYM^{#1}_{#2}\ifthenelse{\isempty{#3}}{}{\left(#3\right)}}
     %\recfnl[d]{i}{Y}{x} gives i-th d-recursive functional operating on set Y and integer x
-    \newcommand*{\recfnl}[4][]{\recfnlSYM_{#2\ifthenelse{\isempty{#1}}{}{,{#1}} }%
+    \newcommand*{\recfnl}[4][]{\@recthy at recfnlSYM_{#2\ifthenelse{\isempty{#1}}{}{,{#1}} }%
         \ifthenelse{\isempty{#4}}%
         {\ifthenelse{\isempty{#3}}%
             {}% No args then print no parents
@@ -1306,46 +1467,46 @@
         }%If no oracle we just refer to the functional without any arguments
         {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
     }}
-    \NewDocumentCommand{\recf}{omod()}{
-        \recfSYM_{#2\IfNoValueTF{#1}{}{, {#1}}}\IfNoValueTF{#3}{}{^{#3}}\IfNoValueTF{#4}{}{(#4)}
+    \NewDocumentCommand{\recf}{od()md()}{
+        \@recthy at recfSYM_{#3\IfNoValueTF{#1}{}{\ifthenelse{\isempty{#3}}{}{, }{#1}}}\IfNoValueTF{#2}{}{^{#2}}\IfNoValueTF{#4}{}{(#4)}
     }
 
 
-    \newcommand*{\thetafnl}[4][]{\Theta_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
-        \ifthenelse{\isempty{#4}}%
-        {\ifthenelse{\isempty{#3}}%
-            {}% No args then print no parents
-            {(#3)}
-        }%If no oracle we just refer to the functional without any arguments
-        {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
-    }}
+    % \newcommand*{\thetafnl}[4][]{\Theta_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
+    %     \ifthenelse{\isempty{#4}}%
+    %     {\ifthenelse{\isempty{#3}}%
+    %         {}% No args then print no parents
+    %         {(#3)}
+    %     }%If no oracle we just refer to the functional without any arguments
+    %     {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
+    % }}
 
-    \newcommand*{\psifnl}[4][]{\Psi_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
-        \ifthenelse{\isempty{#4}}%
-        {\ifthenelse{\isempty{#3}}%
-            {}% No args then print no parents
-            {(#3)}
-        }%If no oracle we just refer to the functional without any arguments
-        {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
-    }}
+    % \newcommand*{\psifnl}[4][]{\Psi_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
+    %     \ifthenelse{\isempty{#4}}%
+    %     {\ifthenelse{\isempty{#3}}%
+    %         {}% No args then print no parents
+    %         {(#3)}
+    %     }%If no oracle we just refer to the functional without any arguments
+    %     {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
+    % }}
 
-    \newcommand*{\phifnl}[4][]{\Phi_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
-        \ifthenelse{\isempty{#4}}%
-        {\ifthenelse{\isempty{#3}}%
-            {}% No args then print no parents
-            {(#3)}
-        }%If no oracle we just refer to the functional without any arguments
-        {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
-    }}
+    % \newcommand*{\phifnl}[4][]{\Phi_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
+    %     \ifthenelse{\isempty{#4}}%
+    %     {\ifthenelse{\isempty{#3}}%
+    %         {}% No args then print no parents
+    %         {(#3)}
+    %     }%If no oracle we just refer to the functional without any arguments
+    %     {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
+    % }}
 
-    \newcommand*{\upsilonfnl}[4][]{\Upsilon_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
-        \ifthenelse{\isempty{#4}}%
-        {\ifthenelse{\isempty{#3}}%
-            {}% No args then print no parents
-            {(#3)}
-        }%If no oracle we just refer to the functional without any arguments
-        {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
-    }}
+    % \newcommand*{\upsilonfnl}[4][]{\Upsilon_{#2\ifthenelse{\isempty{#1}}{}{,#1} }%
+    %     \ifthenelse{\isempty{#4}}%
+    %     {\ifthenelse{\isempty{#3}}%
+    %         {}% No args then print no parents
+    %         {(#3)}
+    %     }%If no oracle we just refer to the functional without any arguments
+    %     {\ifthenelse{\isempty{#3}}{(#4)}{(#3;#4)}%
+    % }}
 
 
     \newcommand*{\cequiv}{\mathrel{\simeq}}
@@ -1357,8 +1518,8 @@
     \NewDocumentCommand{\nconv}{O{}}{\mathpunct{\mkern-4mu{\smallsetminus\mkern 4mu \downarrow}_{#1}}}
     \newcommand*{\diverge}{\mathpunct{\uparrow}}
     % \newcommand*{\use}[2]{\mathscr{u}(#1\ifthenelse{\isempty{#2}}{}{,#2})}
-    \newcommand*{\use}[1]{\mathop{\ltx at ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}}\!\left[{#1}\right]}
-
+    \newcommand*{\use}[1]{\mathop{\@recthy at useSYM}[#1]}
+% \newcommand*{\use}[1]{\ltx at ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}\left(#1\right)}
     % \NewDocumentCommand{\REset}{omd()}{
     % W_{#2\IfNoValueTF{#1}{}{, #1}}\IfNoValueTF{#3}{}{^{#3}}
     % }
@@ -1449,13 +1610,15 @@
     \providecommand*{\TPlus}{\TsetJoin}
     \providecommand*{\Tjoin}{\Tsetjoin}
     \providecommand*{\TJoin}{\TsetJoin}
+    \providecommand*{\Tincompat}{\incompat at recthy[\@recthy at TSYM]}
+    \providecommand*{\Tincomp}{\Tincompat}
+    \providecommand*{\Tcompat}{\compat at recthy[\@recthy at TSYM]}
+    \providecommand*{\nTincompat}{\Tcompat}
+    \providecommand*{\nTincomp}{\Tcompat}
 
 
 
-
-
-
-    \newcommand*{\@recthy at ttSYM}{\ensuremath{\text{\tiny tt}}}
+    \newcommand*{\@recthy at ttSYM}{\ensuremath{\tiny \mathtt{tt}}}
     \newcommand*{\ttSYM}{\@recthy at ttSYM}
     \newcommand*{\ttlneq}{\lneq_{\@recthy at ttSYM}}
     \newcommand*{\ttleq}{\leq_{\@recthy at ttSYM}}



More information about the tex-live-commits mailing list