From c692bae643e821e53503849d0185085066450bb1 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Tue, 26 Sep 2017 23:20:49 +0000
Subject: rec-thy (26sep17)

git-svn-id: svn://tug.org/texlive/trunk@45407 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty | 390 ++++++++++++++++++------
 1 file changed, 294 insertions(+), 96 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty')

diff --git a/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty b/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
index 30c42cab80d..91479ca7d8e 100644
--- a/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
+++ b/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
@@ -1,29 +1,54 @@
 \NeedsTeXFormat{LaTeX2e}
-\newcommand*{\@curpack}{\@currname} %rec-thy.sty
-\newcommand*{\@packinfo}[1]{\PackageInfo{\@curpack}{#1}}
+\ProvidesPackage{rec-thy}[2017/09/26 v2.0  Provides commands for writing up recursion theory papers]
+\makeatletter
+% \newcommand*{\@curpack}{\@currname} %rec-thy.sty
+\newcommand*{\@packinfo}[1]{\PackageInfo{rec-thy}{#1}}
 \newcommand*{\recthy@strip}[1]{%\expandafter\newcommand{\csname #1\endcsname}{}% Makes sure arg isn't already a command
 \expandafter\edef\csname #1\endcsname{\expandafter\noexpand\csname @recthy@#1\endcsname}} %leaves us a command \arg defined to do \@recthy@arg
-\ProvidesPackage{\@curpack} [2011/01/01 v1.2  Provides commands for writing up recursion theory papers] %file name is package name
+% \ProvidesPackage{\@curpack}  %file name is package name
 
 % Release Notes
 % Version 1.2
 % Added mrref option
 % Fixed horrific option processing bug
-
+\RequirePackage{amsmath}
+\RequirePackage{ifxetex,ifpdf}
 \RequirePackage{suffix}
 \RequirePackage{ifmtarg}
 \RequirePackage{xifthen}
 \RequirePackage{xkeyval}
-\RequirePackage{undertilde}
-\RequirePackage{stmaryrd}
-\RequirePackage{amsmath}
+\RequirePackage{mathtools}
 \RequirePackage{amssymb}
-\RequirePackage{marvosym}
-\DeclareMathAlphabet{\mathbrush}{T1}{pbsi}{xl}{n}
-
-\newcommand*{\PMG@arginit}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined}
-
-\newcommand*{\@recthy@family}{\@currname.\@currext} %The default family for this package...filename.ext
+\RequirePackage{amsfonts}
+\RequirePackage{undertilde}
+\RequirePackage{ltxcmds}
+\ltx@ifpackageloaded{unicode-math}{}{\RequirePackage{mathrsfs}}
+
+
+% \DeclareMathAlphabet{\mathbrush}{T1}{pbsi}{xl}{n}
+% \newcommand*{\mathbrush}[1]{\mathsfit{#1}}
+% \ifxetex
+%   \RequirePackage{xltxtra}
+%   \RequirePackage{unicode-math}
+%   % \RequirePackage{fontspec,xunicode}
+%   % \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} % To support LaTeX quoting style
+%   % \input{/Users/TruePath/Library/texmf/tex/headers/appearence.tex}
+% \else
+%   % \usepackage[utf8]{inputenc}
+%   % \usepackage[T1]{fontenc}
+%   % \RequirePackage{euscript}
+%   % \newcommand*{\matheu}{\EuScript}
+
+%   \ifpdf
+% 	\RequirePackage{cmap} % you can search in the pdf for umlauts and ligatures
+%   \fi
+% \fi
+% \RequirePackage{stmaryrd}
+% \RequirePackage{marvosym}
+
+\def\PMG@arginit{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined}
+
+\def\@recthy@family{\@currname.\@currext} %The default family for this package...filename.ext
 %Define boolean options true if option passed false otherwise
 
 
@@ -31,9 +56,11 @@
 \newif\ifrecthy@mrref			\recthy@mrreffalse
 \newif\ifrecthy@nomath			\recthy@nomathfalse
 \newif\ifrecthy@nodelim			\recthy@nodelimfalse
-\newif\ifrecthy@nonames			\recthy@nonamesfalse
-\newif\ifrecthy@nosets			\recthy@nosetsfalse
-\newif\ifrecthy@noquants		\recthy@noquantsfalse
+\newif\ifrecthy@nonames
+\recthy@nonamesfalse
+\newif\ifrecthy@nosets
+\recthy@nosetsfalse
+\newif\ifrecthy@noquants\recthy@noquantsfalse
 \newif\ifrecthy@nospaces		\recthy@nospacesfalse
 \newif\ifrecthy@nostrings		\recthy@nostringsfalse
 \newif\ifrecthy@notrees			\recthy@notreesfalse
@@ -46,28 +73,141 @@
 \newif\ifrecthy@noforcing		\recthy@noforcingfalse
 \newif\ifrecthy@nodegrees		\recthy@nodegreesfalse
 \newif\ifrecthy@nocomputations		\recthy@nocomputationsfalse
-                                                                             
-\DeclareOption{nohyphenation}{\recthy@nohyphenationtrue}
-\DeclareOption{mrref}{\recthy@mrreftrue}
-\DeclareOption{nomath}{\recthy@nomathtrue}
-\DeclareOption{nodelim}{\recthy@nodelimtrue}
-\DeclareOption{nonames}{\recthy@nonamestrue}
-\DeclareOption{nosets}{\recthy@nosetstrue}
-\DeclareOption{noquants}{\recthy@noquantstrue}
-\DeclareOption{nospaces}{\recthy@nospacestrue}
-\DeclareOption{nostrings}{\recthy@nostringstrue}
-\DeclareOption{notrees}{\recthy@notreestrue}
-\DeclareOption{nopair}{\recthy@nopairtrue}
-\DeclareOption{nosetrels}{\recthy@nosetrelstrue}
-\DeclareOption{noordinalnotations}{\recthy@noordinalnotationstrue}
-\DeclareOption{nosyntax}{\recthy@nosyntaxtrue}
-\DeclareOption{nodegclasses}{\recthy@nodegclassestrue}
-\DeclareOption{noforcing}{\recthy@noforcingtrue}
-\DeclareOption{nodegrees}{\recthy@nodegreestrue}
-\DeclareOption{nocomputations}{\recthy@nocomputationstrue}                                                                             
-
-\DeclareOption{degjoin}{\def\Tjoin{\Tdegjoin}}
-	
+\newif\ifrecthy@nostructresets \recthy@nostructresetsfalse
+\newif\ifrecthy@noreqhelper \recthy@noreqhelperfalse
+\newif\ifrecthy@nosubfun \recthy@nosubfunfalse
+\newif\ifrecthy@hyperreqs \recthy@hyperreqstrue
+
+\DeclareOptionX{nohyphenation}{\recthy@nohyphenationtrue}
+\DeclareOptionX{mrref}{\recthy@mrreftrue}
+\DeclareOptionX{nomath}{\recthy@nomathtrue}
+\DeclareOptionX{nodelim}{\recthy@nodelimtrue}
+\DeclareOptionX{nonames}{\recthy@nonamestrue}
+\DeclareOptionX{nosets}{\recthy@nosetstrue}
+\DeclareOptionX{noquants}{\recthy@noquantstrue}
+\DeclareOptionX{nospaces}{\recthy@nospacestrue}
+\DeclareOptionX{nostrings}{\recthy@nostringstrue}
+\DeclareOptionX{notrees}{\recthy@notreestrue}
+\DeclareOptionX{nopair}{\recthy@nopairtrue}
+\DeclareOptionX{nosetrels}{\recthy@nosetrelstrue}
+\DeclareOptionX{noordinalnotations}{\recthy@noordinalnotationstrue}
+\DeclareOptionX{nosyntax}{\recthy@nosyntaxtrue}
+\DeclareOptionX{nodegclasses}{\recthy@nodegclassestrue}
+\DeclareOptionX{noforcing}{\recthy@noforcingtrue}
+\DeclareOptionX{nodegrees}{\recthy@nodegreestrue}
+\DeclareOptionX{nocomputations}{\recthy@nocomputationstrue}
+\DeclareOptionX{nostructresets}{\recthy@nostructresetstrue}
+\DeclareOptionX{noreqhelper}{\recthy@noreqhelpertrue}
+\DeclareOptionX{nosubfun}{\recthy@nosubfuntrue}
+\DeclareOptionX{nohyperreqs}{\recthy@hyperreqsfalse}
+
+\DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}}
+
+\AtEndOfPackage{
+\ifrecthy@nosubfun
+	\@packinfo{Not loading subfun defs.}
+\else
+	\@packinfo{Loading subfun defs DOCUMENT ME.}
+	%DOCUMENT ME
+	\newcommand*{\subfun}[1][]{\prec\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\supfun}[1][]{\succ\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\nsubfun}[1][]{\nprec\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\nsupfun}[1][]{\nsucc\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\subfuneq}[1][]{\preceq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\supfuneq}[1][]{\succeq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\nsubfuneq}[1][]{\npreceq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\nsupfuneq}[1][]{\nsucceq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+\fi
+}
+
+
+
+\newcommand*{\@recthy@reqscr}[1]{\mathscr{#1}}
+% \DeclareOptionX{reqscr}{\newcommand{\@recthy@reqscr}[1]{#1{##1}}}
+
+
+\AtEndOfPackage{
+\ifrecthy@noreqhelper
+	\@packinfo{Not loading requirement assist.}
+\else
+	\@packinfo{Loading requirement assist.}
+	\newcommand*{\req@orig}[3][]{\ensuremath{\ifthenelse{\isempty{#1}}{\@recthy@reqscr{#2}_{#3}}{\@recthy@reqscr{#2}^{#1}_{#3}}}}
+	\ifrecthy@hyperreqs
+		\newcommand*{\req}[3][]{
+		\@ifundefined{hyperref}{
+			\req@orig[#1]{#2}{#3}
+		}{
+			\hyperref[\detokenize{req:#2@#1}]{\req@orig[#1]{#2}{#3}}
+		}}
+	\else
+		\let\req=\req@orig
+	\fi
+	\WithSuffix\def\req*{\req@orig}
+	% \newsavebox{\@recthy@reqbox}
+	% \def\defreq#1#2\par{
+	% 	\begin{equation}\let\veqno\@@leqno%
+	% 		\tag*{#1}%
+	% 		\begin{lrbox}{\@recthy@reqbox}%
+ %   \begin{minipage}{\textwidth}#2\end{minipage}%
+ %   \end{lrbox}%
+ %   \makebox[0pt]{\usebox{\@recthy@reqbox}}%
+	% 	\end{equation}}
+	\newtagform{colon}{}{:}
+	\newenvironment{requirement}[1]{
+		\let\@origif@fleqn@pmg=\if@fleqn
+		\let\@origiftagsleft@pmg=\iftagsleft@
+		\@fleqntrue
+		\setlength\@mathmargin{1.5cm}
+		\tagsleft@true
+		\usetagform{colon}
+		% \let\maketag@@@orig@pmg=\maketag@@@
+		% \def\maketag@@@#1{\hbox{\m@th\normalfont#1:}}
+		\begin{equation}\tag{#1}
+	}{
+		\end{equation}
+		\let\if@fleqn=\@origif@fleqn@pmg
+		\let\iftagsleft@=\@origiftagsleft@pmg
+		\usetagform{default}
+		% \let\maketag@@@=\maketag@@@orig@pmg  
+	}
+
+	\newenvironment{require}[3][]{
+		\begin{requirement}{\req[#1]{#2}{#3}} \label{\detokenize{req:#2@#1}}
+	}{
+		\end{requirement}
+	}
+	\newcommand*{\refreq}[2][]{\ref{\detokenize{req:#2@#1}}}
+
+\fi
+}
+
+
+
+\AtEndOfPackage{
+\ifrecthy@nostructresets
+	\@packinfo{Not loading r.e. set structs w/ containment.}
+\else
+	\@packinfo{Loading r.e. set structs w/ containment.}
+\newcommand*{\promptdif}{\setminus_{\downarrow}}
+\let\setbefore=\promptdif
+\let\promptminus=\promptdif
+\let\promptsetminus=\promptdif
+
+\newcommand*{\StrcE}{\ensuremath{\mathscr{E}}}
+\WithSuffix\def\StrcE*{\ensuremath{\mathscr{E}^{*}}}
+\let\strucE\StrcE
+\newcommand*{\StrcL}[1]{\mathscr{L}(#1)}
+\newcommand*{\StrcStarL}[1]{\mathscr{L}^{*}(#1)}
+\WithSuffix\def\StrcL*{\StrcStarL}
+\newcommand*{\splitof}{\sqsubset}
+\newcommand*{\splitby}{\sqsupset}
+\newcommand*{\StrcR}{\ensuremath{\mathcal{R}}}
+\newcommand*{\StrcD}{\ensuremath{\mathcal{D}}}
+
+
+\fi
+}
+
 \AtEndOfPackage{
 \ifrecthy@nohyphenation
 	\@packinfo{No hyphenation loading.}
@@ -202,41 +342,43 @@
 \fi
 }
 
-\DeclareOption{reterms}{%
+\DeclareOptionX{reterms}{%
 	\let\@recthy@ce=\@recthy@re
 	\let\@recthy@computable=\@recthy@recursive
 	\let\@recthy@computablyEnumerable=\@recthy@recursivelyEnumerable
 	\let\@recthy@ComputablyEnumerable=\@recthy@RecursivelyEnumerable
 	} %Make all references to ce change to re
-	
-	\DeclareOption{reaterms}{%
+
+	\DeclareOptionX{reaterms}{%
 		\let\@recthy@CEA=\@recthy@REA
 		}
-		
-\DeclareOption{ceterms}{%
+
+\DeclareOptionX{ceterms}{%
 	\let\@recthy@re=\@recthy@ce
 	\let\@recthy@recursive=\@recthy@computable
 	\let\@recthy@recursivelyEnumerable=\@recthy@computablyEnumerable
 	\let\@recthy@RecursivelyEnumerable=\@recthy@ComputablyEnumerable
 	} %Make all references to re change to ce
 
-\DeclareOption{ceaterms}{%
+\DeclareOptionX{ceaterms}{%
 			\let\@recthy@REA=\@recthy@CEA
 			}
 % Set stuff
 
-\newcommand*{\@recthy@set}[2]{\ifthenelse{\isempty{#2}}{\left \{  #1 \right \}}{\left \{ #1 \middle | #2\right \}} }
 
+\def\@recthy@set#1{\def\@set@argi@pmg{#1}\@ifnextchar\bgroup\@setst@pmg\@setplain@pmg}
+\newcommand*{\@setst@pmg}[1]{\ifthenelse{\isempty{#1}}{\@setplain@pmg}{\left \{ \@set@argi@pmg \middle | #1\right \}}}
+\newcommand*{\@setplain@pmg}{\left \{ \@set@argi@pmg \right \}}
+% \newcommand*{\@recthy@set}[2]{\ifthenelse{\isempty{#2}}{\left \{  #1 \right \}}{\left \{ #1 \middle | #2\right \}} }
 
 \newcommand*{\@recthy@card}[1]{\lvert#1\rvert}
 \newcommand*{\@recthy@union}{\mathbin{\cup}}
 \newcommand*{\@recthy@Union}{\mathop{\bigcup}}
 \newcommand*{\@recthy@isect}{\mathbin{\cap}}
 \newcommand*{\@recthy@Isect}{\mathop{\bigcap}}
-
+\newcommand*{\@recthy@nin}{\notin}
 \newcommand*{\@recthy@powset}[1]{\mathcal{P}\left(#1\right)}
 \newcommand*{\@recthy@eset}{\emptyset}
-\newcommand*{\@recthy@nin}{\mathrel{\not\in}}
 \newcommand*{\@recthy@setcmpminusSYM}{\backsim}
 \newcommand*{\@recthy@setminuscmp}[1]{\mathop{\@recthy@setcmpminusSYM} #1}
 \newcommand*{\@recthy@setovercmp}[1]{\overline{#1}}
@@ -244,9 +386,9 @@
 \def\@recthy@setminusSYM{-}
 
 
-\DeclareOption{setminussym}{\def\@recthy@setminusSYM{#1}}
-\DeclareOption{setcmpminussym}{\def\@recthy@setminusSYM{#1}}
-\DeclareOption{minussetcmp}{\let\@recthy@setcmp=\@recthy@setminuscmp}
+\DeclareOptionX{setminussym}{\def\@recthy@setminusSYM{#1}}
+\DeclareOptionX{setcmpminussym}{\def\@recthy@setminusSYM{#1}}
+\DeclareOptionX{minussetcmp}{\let\@recthy@setcmp=\@recthy@setminuscmp}
 \newcommand*{\@recthy@setminus}{\mathbin{\@recthy@setminusSYM}}
 
 
@@ -285,26 +427,39 @@
 	\@packinfo{No quants loading.}
 \else
 	\@packinfo{Quants loading.}
-	\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}
-	
+	\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]\!}
+
 	\newcommand*{\forallae}{\forall^{*}}
 	\WithSuffix\def\forallae(#1){\left(\forallae\, #1\right)\!}
 	\WithSuffix\def\forallae[#1]{\left[\forallae\, #1\right]\!}
+
 	\newcommand*{\existsinf}{\exists^{\infty}}
 	\WithSuffix\def\existsinf(#1){\left(\existsinf\, #1\right)\!}
 	\WithSuffix\def\existsinf[#1]{\left[\existsinf\, #1\right]\!}
+
 	\newcommand*{\nexistsinf}{\nexists^{\infty}}
 	\WithSuffix\def\nexistsinf(#1){\left(\nexistsinf\, #1\right)\!}
 	\WithSuffix\def\nexistsinf[#1]{\left[\nexistsinf\, #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}
+
+
+
+
 	\newcommand*{\True}{\top}
 	\newcommand*{\False}{\bot}
 
@@ -344,10 +499,11 @@
 %Strings
 
 \newcommand*{\@recthy@EmptyStr}{\lambda}
-\newcommand*{\@recthy@concatSYM}{\hat{}}
-\DeclareOptionX<\@recthy@family>{emptystr}[]{\def\@recthy@EmptyStr{#1}}
-\DeclareOptionX<\@recthy@family>{concat}[]{\def\@recthy@concatSYM{#1}}
-
+\newcommand*{\@recthy@concatSYM}{\hat{\;}}
+% \DeclareOptionX<\@recthy@family>{emptystr}[]{\def\@recthy@EmptyStr{#1}}
+% \DeclareOptionX<\@recthy@family>{concat}[]{\def\@recthy@concatSYM{#1}}
+\DeclareOptionX{emptystr}{\def\@recthy@EmptyStr{#1}}
+\DeclareOptionX{concat}{\def\@recthy@concatSYM{#1}}
 
 \AtEndOfPackage{
 \ifrecthy@nostrings
@@ -412,7 +568,7 @@
 	\WithSuffix\def\subset*{\subset^{*}}
 	\WithSuffix\def\supset*{\supset^{*}}
 	\WithSuffix\def\subseteq*{\subseteq^{*}}
-	\WithSuffix\def\supseteq*{\supseteq^{*}}  
+	\WithSuffix\def\supseteq*{\supseteq^{*}}
 	\providecommand*{\nsupset}{\not\supset}
 	\providecommand*{\nsubset}{\not\subset}
 	\WithSuffix\def\nsubset*{\nsubset^{*}}
@@ -461,8 +617,8 @@
 \newcommand*{\wck}{\ensuremath{\omega^{ck}_1}}
   % \newcommand*{\ordtype}[1]{\ensuremath{\@recthy@abs{#1}_{\kleeneO}}}
 	\newcommand*{\ordzero}{\ensuremath{0}}
-	
-	\newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\def\kleeneOSYM{\mathcal{O}}\@kleeneObody}
+  \def\kleeneOSYM{\mathcal{O}}
+	\newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@kleeneObody}
 	\newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG@parenarg
 	^{\@PMG@parenarg}%
 	\fi%
@@ -472,7 +628,9 @@
 	\WithSuffix\def\@kleeneObody(#1){\def\@PMG@parenarg{#1}\@kleeneObody}
 	\WithSuffix\def\@kleeneObody[#1]{\def\@PMG@braketarg{#1}\@kleeneObody}
 	\WithSuffix\def\@kleeneObody*{\def\kleeneOSYM{\overline{\mathcal{O}}}\@kleeneObody}
-	
+
+\newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}}
+\let\kleeneOless\kleeneObelow
 
 	\newcommand*{\kleeneOuniq}{\kleeneO*}
 	\let\ordNotations=\kleeneO
@@ -495,7 +653,7 @@
 	\let\hgtO=\kleenehgt
 	\newcommand*{\kleenelim}[2]{{#1}_{[#2]}}
 	\newcommand*{\kleenepred}[1]{{#1}^{-}}
-	
+
 \fi
 }
 
@@ -531,9 +689,9 @@
 
 %%%%%%%%% Formula Classes
 
-\newcommand*{\@recthy@CDelta}{\vphantom{\Delta}^{\mathcal{C}}\Delta}
-\newcommand*{\@recthy@CSigma}{\vphantom{\Sigma}^{\mathcal{C}}\Sigma}
-\newcommand*{\@recthy@CPi}{\vphantom{\Pi}^{\mathcal{C}}\Pi}
+\newcommand*{\@recthy@CDelta}{\prescript{\mathcal{C}}{}{\Delta}}
+\newcommand*{\@recthy@CSigma}{\prescript{\mathcal{C}}{}{\Sigma}}
+\newcommand*{\@recthy@CPi}{\prescript{\mathcal{C}}{}{\Pi}}
 
 \DeclareOptionX<\@recthy@family>{cdeltasym}[]{\def\@recthy@CDelta{#1}}
 \DeclareOptionX<\@recthy@family>{csigmasym}[]{\def\@recthy@CSigma{#1}}
@@ -700,13 +858,13 @@
 
 
 
-	\newcommand*{\Cdeltan}[1]{\CDelta_{#1}}      
-	\WithSuffix\def\Cdeltan[#1]#2{\Cdeltan{#2}^{#1}} 
+	\newcommand*{\Cdeltan}[1]{\CDelta_{#1}}
+	\WithSuffix\def\Cdeltan[#1]#2{\Cdeltan{#2}^{#1}}
 	\newcommand*{\Cpin}[1]{\CPi_{#1}}
-	\WithSuffix\def\Cpin[#1]#2{\Cpin{#2}^{#1}} 
+	\WithSuffix\def\Cpin[#1]#2{\Cpin{#2}^{#1}}
 	\newcommand*{\Csigman}[1]{\CSigma_{#1}}
 	\WithSuffix\def\Csigman[#1]#2{\CSigma_{#2}^{#1}}
-	
+
         \newcommand*{\CdeltaZeroN}[1]{\Cdeltan[0]{#1}}
 	\newcommand*{\CdeltaZeroTwo}{\CdeltaZeroN{2}}
 	\newcommand*{\CdeltaZeroThree}{\CdeltaZeroN{3}}
@@ -715,8 +873,8 @@
 	\newcommand*{\CdeltaOneN}[1]{\Cdeltan[1]{#1}}
 	\newcommand*{\CdeltaOneOne}{\CdeltaOneN{1}}
 	\newcommand*{\CdeltaOneTwo}{\CdeltaOneN{2}}
-	\newcommand*{\CdeltaOneThree}{\CdeltaOneN{3}}    
-        \newcommand*{\CpiZeroN}[1]{\Cpin[0]{#1}} 
+	\newcommand*{\CdeltaOneThree}{\CdeltaOneN{3}}
+        \newcommand*{\CpiZeroN}[1]{\Cpin[0]{#1}}
 	\newcommand*{\CpiOneN}[1]{\Cpin[1]{#1}}
 	\newcommand*{\CpiOneOne}{\CpiOneN{1}}
 	\newcommand*{\CpiOneThree}{\CpiOneN{3}}
@@ -732,8 +890,8 @@
 	\newcommand*{\CsigmaZeroOne}{\CsigmaZeroN{1}}
 	\newcommand*{\CsigmaZeroThree}{\CsigmaZeroN{3}}
 	\newcommand*{\CsigmaZeroTwo}{\CsigmaZeroN{2}}
-	
-	
+
+
 	\WithSuffix\def\CsigmaOneN[#1]#2{\Csigma[1,#1]{#2}}
 	\WithSuffix\def\CsigmaOneOne[#1]{\CsigmaOneN[#1]{1}}
 	\WithSuffix\def\CsigmaOneThree[#1]{\CsigmaOneN[#1]{3}}
@@ -759,7 +917,7 @@
         \WithSuffix\def\CdeltaZeroTwo[#1]{\CdeltaZeroN[#1]{2}}
         \WithSuffix\def\CdeltaZeroThree[#1]{\CdeltaZeroN[#1]{3}}
         \WithSuffix\def\CdeltaZeroOne[#1]{\CdeltaZeroN[#1]{1}}
-           
+
 
 	%%%ABREVIATIONS
 	\newcommand*{\Cdeltaz}{\CdeltaN{0}}
@@ -789,9 +947,9 @@
 	\newcommand*{\CpiIi}{\CpiOneOne}
 	\newcommand*{\CpiIii}{\CpiOneTwo}
 	\newcommand*{\CpiIiii}{\CpiOneThree}
-	
+
 %%%BOLDFACE
-	
+
 	\newcommand*{\Deltan}[1]{\utilde{\mathbf{\Delta}}_{#1}}
 	\WithSuffix\def\Deltan[#1]#2{\utilde{\mathbf{\Delta}}^{#1}_{#2}}
 	% \WithSuffix\def\Deltan(#1)#2{\deltan{#2}\!\left(#1\right)}
@@ -919,7 +1077,7 @@
 	\newcommand*{\PiIi}{\PiOneOne}
 	\newcommand*{\PiIii}{\PiOneTwo}
 	\newcommand*{\PiIiii}{\PiOneThree}
-	
+
 
 
 
@@ -929,6 +1087,7 @@
 }
 
 
+
 %%%ABREVIATIONS
 
 
@@ -942,14 +1101,10 @@
 	\newcommand{\Low}[1][]{\ensuremath{ \text{Low}^{#1} }}
 	\newcommand{\LowN}[2][]{\ensuremath{ \text{Low}^{#1}_{#2} }}
 	\newcommand{\lowN}[2][]{\ensuremath{ \mathcal{L}^{#1}_{#2} }}
-	\newcommand{\req}[2]{\ensuremath{\mathcal{#1}_{#2}}}
 \fi
 }
 
-
-% \ProcessOptions*
-\ProcessOptionsX<\@recthy@family>
-
+\AtEndOfPackage{
 \ifrecthy@nocomputations
 	\@packinfo{No computations loading.}
 \else
@@ -970,15 +1125,53 @@
 		{\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*{\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*{\cequiv}{\mathrel{\backsimeq}}
 	\newcommand*{\ncequiv}{\mathrel{\not\cequiv}}
 	\newcommand*{\conv}[1][]{\mathpunct{\downarrow}_{#1}}
+	\let\converge=\conv
 	%\newcommand*{\convs}[1]{\ensuremath{\conv_{#1}}}
-	\newcommand*{\nconv}[1][]{\mathpunct{\mkern-4mu{\arrownot\mkern 4mu \downarrow}_{#1}}}
+%	\newcommand*{\nconv}[1][]{\mathpunct{\mkern-4mu{\arrownot\mkern 4mu \downarrow}_{#1}}}
+	\newcommand*{\nconv}[1][]{\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{\mathbrush{u}}\!\left[{#1}\right]}
+	\newcommand*{\use}[1]{\mathop{\ltx@ifpackageloaded{unicode-math}{\mathbffrak{u}}{\mathfrak{u}}}\!\left[{#1}\right]}
 
 	\newcommand*{\REset}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@REsetbody}
 	\newcommand*{\@REsetbody}[1]{W\ifdefined\@PMG@parenarg
@@ -998,7 +1191,7 @@
 	\let\iREAop=\oneREAop
 	\WithSuffix\def\reaop*#1{\oneREAop{#1}}
 	%converges
-	
+
 \fi
 
 
@@ -1009,14 +1202,14 @@
 
 
 	%%%%%%Turing Degrees
-	\newcommand*{\Tdeg}[1]{\utilde{#1}}
+	\newcommand*{\Tdeg}[1]{\utilde{\mathbf{#1}}}
 
 	\newcommand*{\Tjump}[1]{#1'}
 	\let\jump=\Tjump
 	\newcommand*{\jumpn}[2]{#1^{(#2)}}
 	\newcommand*{\jjump}[1]{#1''}
 	% \newcommand*{\Tzerosym}{\MVZero}
-	\newcommand*{\Tzerosym}{\MVZero}
+	\newcommand*{\Tzerosym}{\mathbb{0}}
 	\newcommand*{\Tzero}{{\Tzerosym}}
 	\newcommand*{\zeron}[1]{{\Tzerosym}^{(#1)}}
 	\newcommand*{\zeroj}{\jump{{\Tzerosym}}}
@@ -1067,12 +1260,17 @@
 	\newcommand*{\ttgeq}{\geq_{\@recthy@ttSYM}}
 	\newcommand*{\ttgtr}{>_{\@recthy@ttSYM}}
 	\newcommand*{\ttless}{<_{\@recthy@ttSYM}}
-	\newcommand*{\ttTleq}{\nleq_{\@recthy@ttSYM}}
-	\newcommand*{\ttTgeq}{\ngeq_{\@recthy@ttSYM}}
+	\newcommand*{\ttnleq}{\nleq_{\@recthy@ttSYM}}
+	\newcommand*{\ttngeq}{\ngeq_{\@recthy@ttSYM}}
 \fi
 
+}
+
 
 
+% \ProcessOptions*
+% \ProcessOptionsX<\@recthy@family>
+\ProcessOptionsX
 
 
 
-- 
cgit v1.2.3

