summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/rec-thy/rec-thy.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/rec-thy/rec-thy.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/rec-thy/rec-thy.sty')
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.sty1646
1 files changed, 1646 insertions, 0 deletions
diff --git a/macros/latex/contrib/rec-thy/rec-thy.sty b/macros/latex/contrib/rec-thy/rec-thy.sty
new file mode 100644
index 0000000000..4f69ee5fe3
--- /dev/null
+++ b/macros/latex/contrib/rec-thy/rec-thy.sty
@@ -0,0 +1,1646 @@
+\NeedsTeXFormat{LaTeX2e}
+\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}}
+\newcommand*{\recthy@strip}[1]{%
+\ifcsname #1\endcsname%
+\else%
+\expandafter\edef\csname #1\endcsname{\expandafter\noexpand\csname @recthy@#1\endcsname}
+\fi
+}
+%leaves us a command \arg defined to do \@recthy@arg
+% \ProvidesPackage{\@curpack} %file name is package name
+
+% Release Notes
+% Version 1.2
+% Added mrref option
+% Fixed horrific option processing bug
+\RequirePackage{ltxcmds}
+\RequirePackage{ifxetex,ifpdf}
+\RequirePackage{suffix}
+\RequirePackage{ifmtarg}
+\RequirePackage{xifthen}
+\RequirePackage{xkeyval}
+\RequirePackage{etoolbox}
+\robustify\(
+\robustify\)
+\RequirePackage{xparse}
+\RequirePackage{ifxetex}
+\AtBeginDocument{
+\ltx@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\ltx@ifpackageloaded{amssymb}{}{\RequirePackage{amssymb}}
+\ltx@ifpackageloaded{amsfonts}{}{\RequirePackage{amsfonts}}
+\ltx@ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
+\ltx@ifpackageloaded{unicode-math}{}{\RequirePackage{mathrsfs}\RequirePackage{mathbbol}}
+\ltx@ifpackageloaded{undertilde}{}{\RequirePackage{undertilde}}
+}
+
+% \ifxetex %workaround for bug...hopefully can dispense on later
+% \gdef\symbf#1{\symbf{#1}}
+% \fi
+% \global\let\symbf=\symbf
+\ifxetex
+\else
+ \def\symbf#1{\mathbf{#1}}
+\fi
+
+
+
+% \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
+
+
+\newif\ifrecthy@nohyphenation \recthy@nohyphenationfalse
+\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@nospaces \recthy@nospacesfalse
+\newif\ifrecthy@nostrings \recthy@nostringsfalse
+\newif\ifrecthy@notrees \recthy@notreesfalse
+\newif\ifrecthy@nopair \recthy@nopairfalse
+\newif\ifrecthy@nonames \recthy@nonamesfalse
+\newif\ifrecthy@nosetrels \recthy@nosetrelsfalse
+\newif\ifrecthy@noordinalnotations \recthy@noordinalnotationsfalse
+\newif\ifrecthy@nosyntax \recthy@nosyntaxfalse
+\newif\ifrecthy@nodegclasses \recthy@nodegclassesfalse
+\newif\ifrecthy@noforcing \recthy@noforcingfalse
+\newif\ifrecthy@nodegrees \recthy@nodegreesfalse
+\newif\ifrecthy@nocomputations \recthy@nocomputationsfalse
+\newif\ifrecthy@nostructresets \recthy@nostructresetsfalse
+\newif\ifrecthy@noreqhelper \recthy@noreqhelperfalse
+\newif\ifrecthy@nosubfun \recthy@nosubfunfalse
+\newif\ifrecthy@nopfcases \@ifclassloaded{beamer}{\recthy@nopfcasestrue}{\recthy@nopfcasesfalse}
+\newif\ifrecthy@noprioritytrees \recthy@noprioritytreesfalse
+\newif\ifrecthy@nosuppprioritytrees \recthy@nosuppprioritytreestrue
+\newif\ifrecthy@hyperreqs \recthy@hyperreqstrue
+\newif\ifrecthy@nooperators \recthy@nooperatorsfalse
+%\newif\ifrecthy@nomodule \recthy@nomodulefalse
+
+\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{nopfcases}{\recthy@nopfcasestrue}
+\DeclareOptionX{noprioritytrees}{\recthy@noprioritytreestrue}
+\DeclareOptionX{suppPriorityTrees}{\recthy@nosuppprioritytreesfalse}
+\DeclareOptionX{nohyperreqs}{\recthy@hyperreqsfalse}
+\DeclareOptionX{nooperators}{\recthy@nooperatorstrue}
+%\DeclareOptionX{nomodule}{\recthy@nomoduletrue}
+
+\DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}}
+
+\let\@recthy@modulescr\mathcal
+\DeclareOptionX{modulescr}[mathcal]{\letcs{\@recthy@modulescr}{#1}}
+
+\def\@recthy@ballsymb@default{\mathscr{B}}
+\let\@recthy@ballsymb\@recthy@ballsymb@default
+\DeclareOptionX{ballsymb}[@recthy@ballsymb@default]{\letcs{\@recthy@ballsymb}{#1}}
+
+\AtEndOfPackage{
+ \ifrecthy@noprioritytrees
+ \@packinfo{Not loading Priority Tree Helper}
+ \else
+ \@packinfo{Loading Priority Tree Helper.}
+ \providecommand{\PriorityTree}{\mathbb{T}}
+ \providecommand{\tpath}[1][]{\ifthenelse{\isempty{#1}}{\symbf{f}}{\mathbb{f}_{#1}}}
+ \providecommand{\leftof}{\mathbin{<_L}}
+ \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@modulescr{#1}}^{#2}_{#3} }}
+ \let\module=\PriorityTreeModule
+ \providecommand{\ball}[3][]{{\@recthy@ballsymb}^{#1}(#2, #3)}
+ \fi
+
+}
+
+
+\AtEndOfPackage{
+ \ifrecthy@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@casefont\textsc
+\DeclareOptionX{pfcasefont}[textsc]{\letcs{\pmg@casefont}{#1}}
+
+\AtEndOfPackage{
+ \ifrecthy@nopfcases
+ \@packinfo{Not loading Proof Cases Helper}
+ \else
+ \@packinfo{Loading Proof Cases Helper.}
+ \RequirePackage{enumitem}
+ \ltx@ifpackageloaded{cleveref}{
+ \crefformat{pfcasesnonumi}{#2case~#1#3}
+ \Crefformat{pfcasesnonumi}{#2Case~#1#3}
+ \crefformat{pfcasesnonumii}{#2subcase~#1#3}
+ \Crefformat{pfcasesnonumii}{#2Subcase~#1#3}
+ \crefformat{pfcasesnonumiii}{#2subsubcase~#1#3}
+ \Crefformat{pfcasesnonumiii}{#2Subsubcase~#1#3}
+ \crefformat{pfcasesnumberedi}{#2case~#1#3}
+ \Crefformat{pfcasesnumberedi}{#2Case~#1#3}
+ \crefformat{pfcasesnumberedii}{#2case~#1#3}
+ \Crefformat{pfcasesnumberedii}{#2Case~#1#3}
+ \crefformat{pfcasesnumberediii}{#2case~#1#3}
+ \Crefformat{pfcasesnumberediii}{#2Case~#1#3}
+ }{}
+ \newlist{pfcasesnonum}{enumerate}{3}
+ \setlist[pfcasesnonum]{
+ label={\pmg@casefont{Case}}\protect\thiscase:~,
+ align=left,
+ labelsep=!,
+ itemindent=-1em,
+ leftmargin=2em,
+ labelindent=0pt,
+ labelwidth=0pt
+ }
+ \setlist[pfcasesnonum,1]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumi},
+ }
+ \setlist[pfcasesnonum,2]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumii},
+ }
+ \setlist[pfcasesnonum,3]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumiii},
+ }
+ \newlist{pfcasesnumbered}{enumerate}{3}
+ \setlist[pfcasesnumbered]{
+ align=left,
+ labelsep=!,
+ itemindent=-1em,
+ leftmargin=2em,
+ labelindent=0pt,
+ labelwidth=0pt
+ }
+ \setlist[pfcasesnumbered,1]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberedi},
+ label={{\pmg@casefont{Case}}~\arabic*\protect\thiscase:~},
+ ref={\arabic*},
+ }
+ \setlist[pfcasesnumbered,2]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberedii},
+ label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph*:\protect\thiscase.~},
+ ref={\arabic{pfcasesnumberedi}\alph*},
+ }
+ \setlist[pfcasesnumbered,3]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberediii},
+ label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*:\protect\thiscase.~},
+ ref={\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*},
+ }
+ \newenvironment{pfcases*}{
+ \ProvideDocumentCommand{\case}{o}{
+ \IfNoValueTF{##1}{
+ \def\thiscase{}%
+ }{
+ \def\thiscase{~##1}%
+ }
+ \item \ltx@ifpackageloaded{cleveref}{%
+ \cref@constructprefix{pfcases}{\cref@result}%
+ \protected@xdef\cref@currentlabel{[\pfcasecounter@pmg][][\cref@result]##1}}{} \protected@edef\@currentlabel{##1}%
+ }
+ \begin{pfcasesnonum}
+ }
+ {\end{pfcasesnonum}}
+
+ \newenvironment{pfcases}{
+ \ProvideDocumentCommand{\case}{o}{
+ \IfNoValueTF{##1}{
+ \def\thiscase{}%
+ }{
+ \def\thiscase{~##1}%
+ }
+ \item \ltx@ifpackageloaded{cleveref}{%
+ \cref@constructprefix{\pfcasecounter@pmg}{\cref@result}
+ \protected@xdef\cref@currentlabel{[\pfcasecounter@pmg][][\cref@result] \csname the\pfcasecounter@pmg \endcsname}}{}%
+ }
+ \begin{pfcasesnumbered}}{\end{pfcasesnumbered}}
+ \fi
+}
+
+\AtEndOfPackage{
+\ifrecthy@nosubfun
+ \@packinfo{Not loading subfun defs.}
+\else
+ \@packinfo{Loading subfun defs.}
+ %DOCUMENT ME
+ \NewDocumentCommand{\subfun}{o}{\prec\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfun}{o}{\succ\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsubfun}{o}{\nprec\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsupfun}{o}{\nsucc\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\subfuneq}{o}{\preceq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfuneq}{o}{\succeq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsubfuneq}{o}{\npreceq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsupfuneq}{o}{\nsucceq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\subfunneq}{o}{\precneq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfunneq}{o}{\succneq\IfNoValueTF{#1}{}{_{#1}}}
+\fi
+}
+
+
+
+\let\@recthy@reqscr\mathscr
+\DeclareOptionX{reqscr}[mathscr]{\letcs{\@recthy@reqscr}{#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}}}}
+
+ \NewDocumentCommand{\req@href}{O{}mO{}m}{\@ifundefined{hyperref}{\req@orig[#1#3]{#2}{#4}}{\hyperref[\detokenize{req:#2@#1#3}]{\req@orig[#1#3]{#2}{#4}}}}
+ \NewDocumentCommand{\req@nohref}{O{}mO{}m}{\req@orig[#1#3]{#2}{#4}}
+ \ifrecthy@hyperreqs
+ \let\req=\req@href
+ \else
+ \let\req=\req@nohref
+ \fi
+ \WithSuffix\def\req*{\req@nohref}
+ % \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
+ }
+
+ \NewDocumentEnvironment{require}{O{}mO{}m}{
+ \begin{requirement}{\req@nohref[#1#3]{#2}{#4}} \label{\detokenize{req:#2@#1#3}}%
+ }{
+ \end{requirement}%
+ }
+ % \NewDocumentEnvironment{require*}{O{}mO{}m}{
+ % \begin{requirement}{\req@nohref[#1#3]{#2}{#4}}%
+ % }{
+ % \end{requirement}%
+ % }
+ \NewDocumentCommand{\refreq}{O{}mO{}}{\ref{\detokenize{req:#2@#1#3}}}
+
+ \NewDocumentCommand{\require@nested}{sO{}mO{}m}{
+ \IfBooleanTF{#1}{\tag{\req@nohref[#2#4]{#3}{#5}}}{\tag{\req@nohref[#2#4]{#3}{#5}}\label{\detokenize{req:#3@#2#4}}}
+ }
+ % \newcommand*{\require@nested}{\require@nested@href}
+ % \WithSuffix\def\require@nested*{\require@nested@nohref}
+ % \NewDocumentEnvironment{require*}{O{}mO{}m}{
+ % \tag{\req@nohref[#1#3]{#2}{#4}}%
+ % }{}
+
+
+ \NewDocumentEnvironment{requirements}{}{
+ \let\@origif@fleqn@pmg=\if@fleqn
+ \let\@origiftagsleft@pmg=\iftagsleft@
+ \@fleqntrue
+ \setlength\@mathmargin{1.5cm}
+ \tagsleft@true
+ \usetagform{colon}
+ \let\require=\require@nested
+ % \let\maketag@@@orig@pmg=\maketag@@@
+ % \def\maketag@@@#1{\hbox{\m@th\normalfont#1:}}
+ \gather
+ }{
+ \endgather
+ \let\if@fleqn=\@origif@fleqn@pmg
+ \let\iftagsleft@=\@origiftagsleft@pmg
+ \usetagform{default}
+ % \let\maketag@@@=\maketag@@@orig@pmg
+ }
+
+\fi
+}
+
+
+
+\AtEndOfPackage{
+\ifrecthy@nostructresets
+ \@packinfo{Not loading r.e. set structs w/ containment.}
+\else
+ \@packinfo{Loading r.e. set structs w/ containment.}
+\let\@orig@setminus=\setminus
+\newcommand*{\promptdif}{\@orig@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.}
+\else
+\hyphenation{ra-tion-als ra-tion-al Harrington Slaman Cholak Knight Gerdes Lange}
+\fi
+}
+
+
+\AtEndOfPackage{
+\ifrecthy@mrref
+ \@packinfo{MRref helper loading}
+ \RequirePackage{hyperref}
+ \def\recthy@checkMR MR#1#2#3 #4\relax%
+ {\ifx#1M%
+ \ifx#2R\recthy@MR{#3}\else\recthy@MR{#1#2#3}\fi
+ \else
+ \recthy@MR{#1#2#3}%
+ \fi}
+ \def\MR#1{\recthy@checkMR MR#1 \relax}
+ \newcommand{\recthy@MR}[1]{\recthy@MRhref{#1}{MR #1}}
+ % % \MRhref is called by the amsart/book/proc definition of \MR.
+ \newcommand{\recthy@MRhref}[2]{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}}
+\else
+ \@packinfo{MRref helper not loading}
+\fi
+}
+
+\newcommand*{\@recthy@abs}[1]{\lvert#1\rvert}
+\newcommand*{\@recthy@ensuretext}[1]{\ensuremath{\text{#1}}}
+\AtEndOfPackage{
+\ifrecthy@nomath
+ \@packinfo{No math loading.}
+\else
+ \@packinfo{math loading.}
+ \providecommand*{\eqdef}{\stackrel{\text{\tiny def}}{=}} %\newcommand*{\eqdef}{\ensuremath{=\limits_{\text{\tiny def}}}}
+ \providecommand*{\iffdef}{\stackrel{\text{\tiny def}}{\iff}}
+ \ifdefined\aut
+ \else
+ \DeclareMathOperator{\aut}{Aut}
+ \fi
+ \ifdefined\Ord
+ \else
+ \DeclareMathOperator{\Ord}{Ord}
+ \fi
+
+
+ \recthy@strip{abs}
+ \ifdefined\dom
+ \else
+ \DeclareMathOperator{\dom}{dom}
+ \fi
+ \ifdefined\rng
+ \else
+ \DeclareMathOperator{\rng}{rng}
+ \fi
+ \providecommand*{\restr}[1]{\mathpunct{\restriction_{#1}}}
+ \providecommand*{\ordpair}[2]{\left( #1, #2 \right) }
+ %%%%%%%%Function commands
+ \providecommand*{\map}[2]{:#1\mapsto #2}
+ \providecommand*{\functo}[3]{#1\map{#2}{#3}}
+ \providecommand*{\compfunc}{\mathbin{\circ}}
+ \ifdefined\compose
+ \else
+ \let\compose=\compfunc
+ \fi
+ \ifdefined\funcomp
+ \else
+ \let\funcomp=\compfunc
+ \fi
+ \recthy@strip{ensuretext}
+\fi
+}
+
+
+\AtEndOfPackage{
+\ifrecthy@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
+ \DeclareMathOperator{\xor}{xor}
+ \fi
+\fi
+}
+
+\newcommand*{\@recthy@llangle}{\mathopen{\langle\!\langle}}
+\newcommand*{\@recthy@rrangle}{\mathclose{\rangle\!\rangle}}
+
+
+
+\AtEndOfPackage{
+\ifrecthy@nodelim
+ \@packinfo{No delimiters loading.}
+\else
+ \ltx@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@strip{llangle}
+ \recthy@strip{rrangle}
+\fi
+}
+
+\newcommand*{\@recthy@re}{\@recthy@ensuretext{r.e.\ }}
+\newcommand*{\@recthy@ce}{\@recthy@ensuretext{c.e.\ }}
+\newcommand*{\@recthy@RE}{\@recthy@ensuretext{R.E.\ }}
+\newcommand*{\@recthy@CE}{\@recthy@ensuretext{C.E.\ }}
+\newcommand*{\@recthy@Re}{\@recthy@ensuretext{R.e.\ }}
+\newcommand*{\@recthy@Ce}{\@recthy@ensuretext{C.e.\ }}
+\newcommand*{\@recthy@recursive}{\@recthy@ensuretext{recursive}}
+\newcommand*{\@recthy@computable}{\@recthy@ensuretext{computable}}
+\newcommand*{\@recthy@recursivelyEnumerable}{\@recthy@ensuretext{recursively enumerable}}
+\newcommand*{\@recthy@computablyEnumerable}{\@recthy@ensuretext{computably enumerable}}
+\newcommand*{\@recthy@Recursive}{\@recthy@ensuretext{Recursive}}
+\newcommand*{\@recthy@Computable}{\@recthy@ensuretext{Computable}}
+\newcommand*{\@recthy@RecursivelyEnumerable}{\@recthy@ensuretext{Recursively enumerable}}
+\newcommand*{\@recthy@ComputablyEnumerable}{\@recthy@ensuretext{Computably enumerable}}
+\newcommand*{\@recthy@REA}{\ensuremath{\text{REA}}}
+\WithSuffix\def\@recthy@REA[#1]{#1-\@recthy@REA\relax}
+\newcommand*{\@recthy@CEA}{\ensuremath{\text{CEA}}}
+\WithSuffix\def\@recthy@CEA[#1]{#1-\@recthy@CEA\relax}
+
+\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
+
+ \DeclareOptionX{reaterms}{%
+ \let\@recthy@CEA=\@recthy@REA
+ }
+
+\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
+
+\DeclareOptionX{ceaterms}{%
+ \let\@recthy@REA=\@recthy@CEA
+ }
+\DeclareOptionX{reaterms}{%
+ \let\@recthy@CEA=\@recthy@REA
+ }
+
+
+
+\AtEndOfPackage{
+\ifrecthy@nonames
+ \@packinfo{No names loading.}
+\else
+ \@packinfo{Names loading.}
+ \recthy@strip{re}
+ \recthy@strip{ce}
+ \recthy@strip{RE}
+ \recthy@strip{CE}
+ \recthy@strip{Re}
+ \recthy@strip{Ce}
+ \recthy@strip{REA}
+ \recthy@strip{CEA}
+ \recthy@strip{recursive}
+ \recthy@strip{computable}
+ \recthy@strip{recursivelyEnumerable}
+ \recthy@strip{computablyEnumerable}
+ \recthy@strip{Recursive}
+ \recthy@strip{Computable}
+ \recthy@strip{RecursivelyEnumerable}
+ \recthy@strip{ComputablyEnumerable}
+\fi
+}
+
+
+% Set stuff
+
+
+
+\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\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 \}} }
+% \DeclareOptionX{setminussym}[@recthy@defaultsetminusSYM]{\edef\@recthy@setminusSYM{\expandafter\noexpand\csname #1 \endcsname}}
+
+
+\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@setcmpminusSYM}{\backsim}
+% \newcommand*{\@recthy@setminuscmp}[1]{\mathop{\@recthy@setcmpminusSYM} #1}
+\newcommand*{\@recthy@setovercmp}[1]{\overline{#1}}
+\let\@recthy@setcmp=\@recthy@setovercmp
+\def\@recthy@setdiffSYM{-}
+\newcommand*{\@recthy@setdiff}{\mathbin{\@recthy@setdiffSYM}}
+
+\DeclareOptionX{setdiffsym}{\edef\@recthy@setdiffSYM{\expandafter\noexpand\csname #1 \endcsname}}
+
+
+
+
+
+\AtEndOfPackage{
+\WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2}
+\ifrecthy@nosets
+ \@packinfo{No set cmds loading.}
+\else
+ \@packinfo{Set cmds loading.}
+ \recthy@strip{set}
+ \recthy@strip{card}
+ \recthy@strip{union}
+ \recthy@strip{Union}
+ \recthy@strip{isect}
+ \recthy@strip{Isect}
+ \recthy@strip{powset}
+ \recthy@strip{eset}
+ \recthy@strip{nin}
+ \recthy@strip{setcmp}
+ % \recthy@strip{setovercmp}
+ % \recthy@strip{setminuscmp}
+ \recthy@strip{setdiff}
+ \let\crossOrig=\cross
+ \def\cross{}
+ \renewcommand*{\cross}{\mathbin{\times}}
+ \let\CrossOrig=\Cross
+ \def\Cross{}
+ \renewcommand*{\Cross}{\mathop{\Pi}}
+ \providecommand*{\symdiff}{\mathbin{\Delta}}
+ % \ifdefined\interior
+ % \else
+ % \DeclareMathOperator{\interior}{int}
+ % \fi
+ % \ifdefined\closure
+ % \else
+ % \DeclareMathOperator{\clos}{cl}
+ % \fi
+\fi
+}
+
+\AtEndOfPackage{
+\ifrecthy@noquants
+ \@packinfo{No quants loading.}
+\else
+ \@packinfo{Quants loading.}
+ \AtBeginDocument{
+ \let\exists@orig@recthy=\exists
+ \let\forall@orig@recthy=\forall
+ \newcommand*{\exists@recthy}{\exists@orig@recthy}
+ \newcommand*{\forall@recthy}{\forall@orig@recthy}
+ \let\nexists@orig@recthy=\nexists
+ \newcommand*{\nexists@recthy}{\nexists@orig@recthy}
+ \let\nforall@orig@recthy=\nforall
+ \newcommand*{\nforall@recthy}{\nforall@orig@recthy}
+ \newcommand*{\existsuniq}{\exists@orig@recthy !}
+ \newcommand*{\nexistsuniq}{\nexists@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@orig@recthy^{*}}
+ \WithSuffix\def\forallae(#1){\left(\forallae #1\right)\!}
+ \WithSuffix\def\forallae[#1]{\left[\forallae #1\right]\!}
+
+ \newcommand*{\nforallae}{\nforall@orig@recthy^{*}}
+ \WithSuffix\def\nforallae(#1){\left(\nforallae #1\right)\!}
+ \WithSuffix\def\nforallae[#1]{\left[\nforallae #1\right]\!}
+
+ \providecommand*{\existsinf}{\exists@orig@recthy^{\infty}}
+ \WithSuffix\def\existsinf(#1){\left(\existsinf #1\right)\!}
+ \WithSuffix\def\existsinf[#1]{\left[\existsinf #1\right]\!}
+
+ \providecommand*{\nexistsinf}{\nexists^{\infty}}
+ \WithSuffix\def\nexistsinf(#1){\left(\nexistsinf #1\right)\!}
+ \WithSuffix\def\nexistsinf[#1]{\left[\nexistsinf #1\right]\!}
+
+ \WithSuffix\def\exists@recthy(#1){\left(\exists #1 \right)\!}
+ \WithSuffix\def\forall@recthy(#1){\left(\forall #1 \right)\!}
+ \WithSuffix\def\nexists@recthy(#1){\left(\nexists #1 \right)\!}
+ \WithSuffix\def\exists@recthy[#1]{\left[\exists #1 \right]\!}
+ \WithSuffix\def\forall@recthy[#1]{\left[\forall #1 \right]\!}
+ \WithSuffix\def\nexists@recthy[#1]{\left[\nexists #1 \right]\!}
+ \WithSuffix\def\forall@recthy*{\forallae}
+ \WithSuffix\def\nforall@recthy*{\nforallae}
+ \WithSuffix\def\exists@recthy*{\existsinf}
+ \WithSuffix\def\nexists@recthy*{\nexistsinf}
+ \WithSuffix\def\exists@recthy!{\existsuniq}
+ \let\exists=\exists@recthy
+ \let\forall=\forall@recthy
+ \let\nexists=\nexists@recthy
+ \let\nforall=\nforall@recthy
+ }
+
+
+
+ \providecommand*{\True}{\top}
+ \providecommand*{\False}{\bot}
+
+ \providecommand*{\Land}{\mathop{\bigwedge}}
+ \providecommand*{\Lor}{\mathop{\bigvee}}
+ \providecommand*{\LLand}{\mathop{\bigwedge\mkern-15mu\bigwedge}}
+ \providecommand*{\LLor}{\mathop{\bigvee\mkern-15mu\bigvee}}
+
+ \providecommand*{\liff}{\ensuremath{\leftrightarrow}}
+ \providecommand*{\limplies}{\ensuremath{\rightarrow}}
+
+\fi
+}
+
+
+
+
+\AtEndOfPackage{
+\ifrecthy@nospaces
+ \@packinfo{No spaces loading.}
+\else
+ \@packinfo{Spaces loading.}
+
+ \providecommand*{\bstrs}{2^{<\omega}}
+ \providecommand*{\wstrs}{\omega^{<\omega}}
+
+ \providecommand*{\cantor}{2^{\omega}}
+ % \WithSuffix\def\cantor*{\left(2\union \diverge \right)^{\omega}}
+ \providecommand*{\baire}{\omega^{\omega}}
+ % \WithSuffix\def\baire*{\left(\omega \union \diverge \right)^{\omega}}
+ \providecommand*{\Baire}{\mathcal{N}}
+\fi
+}
+
+
+%Strings
+\def\@recthy@concatSYM@Default{\widehat{\phantom{X}}}
+\def\@recthy@EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
+\let\@recthy@concatSYM\@recthy@concatSYM@Default
+\let\@recthy@EmptyStr\@recthy@EmptyStr@Default
+
+\DeclareOptionX{emptystr}[@recthy@EmptyStr@Default]{\letcs{\@recthy@EmptyStr}{#1}}
+\DeclareOptionX{concatsym}[@recthy@concatSYM@Default]{\letcs{\@recthy@concatSYM}{#1}}
+\newcommand*{\@recthy@pair}[2]{\mathopen{\@recthy@llangle} #1, #2 \mathclose{\@recthy@rrangle}}
+
+\NewDocumentCommand{\incompat@recthy}{o}{\mathrel{\mid}\IfValueTF{#1}{_{#1}}{}}
+\NewDocumentCommand{\compat@recthy}{o}{\mathrel{\not\mid}\IfValueTF{#1}{_{#1}}{}}
+
+\AtEndOfPackage{
+\ifrecthy@nostrings
+ \@packinfo{No strings loading.}
+\else
+ \@packinfo{Strings loading.}
+ \newcommand*{\closedn}[1]{{#1}^\blacktriangledown}
+ \newcommand*{\str}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
+ \newcommand*{\code}[1]{\mathopen{\@recthy@llangle}#1\mathclose{\@recthy@rrangle}}
+ \newcommand*{\EmptyStr}{\@recthy@EmptyStr}
+ \newcommand*{\estr}{\EmptyStr}
+ \newcommand*{\decode}[2]{(#1)_{#2}}
+ \let\godelpair=\@recthy@pair
+ \let\gpair=\@recthy@pair
+ \newcommand*{\concat}{\@recthy@concatSYM}
+ \WithSuffix\def\concat[#1]{\concat\str{#1}}
+ \newcommand*{\strpred}[1]{{#1}^{-}}
+ \providecommand*{\lh}[2][]{\@recthy@abs{#2}_{#1}} %% Gives length of a string
+
+ \providecommand*{\incompat}{\incompat@recthy} %incompatible stringes FIX SPACING
+ \providecommand*{\incomp}{\incompat@recthy}
+ \providecommand*{\compat}{\compat@recthy}
+ \providecommand*{\nincompat}{\compat@recthy}
+ \providecommand*{\nincomp}{\compat@recthy}
+ \newcommand*{\setcol}[2]{{#1}^{[#2]}}
+ \ifrecthy@nopair
+ \@packinfo{No redefining pair.}
+ \else
+ \@packinfo{pair=godelpair.}
+ \let\pair=\@recthy@pair
+ \fi
+\fi
+}
+
+\AtEndOfPackage{
+\ifrecthy@notrees
+ \@packinfo{No trees loading.}
+\else
+ \@packinfo{Trees loading.}
+ \newcommand*{\CBderiv}[2][1]{#2^{\langle#1\rangle}}
+ \newcommand*{\pruneTree}[1]{\CBderiv[\infty]{#1}}
+ \newcommand*{\hgt}[1]{\lVert #1 \rVert}
+\fi
+}
+
+
+
+
+
+% Tree arguments
+
+% \newcommand*{\truepath}[2][]{\Gamma_{#1}\ifthenelse{\isempty{#2}}{}{(#2)}}
+% \newcommand*{\Tpath}{\truepath}
+
+
+
+
+%re set relations
+\AtEndOfPackage{
+\ifrecthy@nosetrels
+ \@packinfo{No setrels loading.}
+\else
+ \@packinfo{setrels loading.}
+ \AtBeginDocument{
+ \providecommand*{\nsupset}{\not\supset@recthy@orig}
+ \providecommand*{\nsubset}{\not\subset@recthy@orig}
+ \let\nsubset@recthy@orig=\nsubset
+ \let\nsupset@recthy@orig=\nsupset
+ \let\subset@recthy@orig=\subset
+ \let\supset@recthy@orig=\supset
+ \let\subseteq@recthy@orig=\subseteq
+ \let\supseteq@recthy@orig=\supseteq
+ \let\subsetneq@recthy@orig=\subsetneq
+ \let\supsetneq@recthy@orig=\supsetneq
+ \newcommand*{\subset@recthy}{\subset@recthy@orig}
+ \newcommand*{\supset@recthy}{\supset@recthy@orig}
+ \newcommand*{\subseteq@recthy}{\subseteq@recthy@orig}
+ \newcommand*{\supseteq@recthy}{\supseteq@recthy@orig}
+ \newcommand*{\nsubset@recthy}{\nsubset@recthy@orig}
+ \newcommand*{\nsupset@recthy}{\nsupset@recthy@orig}
+ \newcommand*{\nsubseteq@recthy}{\nsubseteq@recthy@orig}
+ \newcommand*{\nsupseteq@recthy}{\nsupseteq@recthy@orig}
+ \WithSuffix\def\subset@recthy*{\subset@recthy@orig^{*}}
+ \WithSuffix\def\supset@recthy*{\supset@recthy@orig^{*}}
+ \WithSuffix\def\subseteq@recthy*{\subseteq@recthy@orig^{*}}
+ \WithSuffix\def\supseteq@recthy*{\supseteq@recthy@orig^{*}}
+ \WithSuffix\def\subsetneq@recthy*{\subsetneq@recthy@orig^{*}}
+ \WithSuffix\def\supsetneq@recthy*{\supsetneq@recthy@orig^{*}}
+ \WithSuffix\def\nsubset@recthy*{\nsubset^{*}}
+ \WithSuffix\def\nsupset@recthy*{\nsupset^{*}}
+ \WithSuffix\def\nsubseteq@recthy*{\nsubseteq^{*}}
+ \WithSuffix\def\nsupseteq@recthy*{\nsupseteq^{*}}
+ \let\subset=\subset@recthy
+ \let\supset=\supset@recthy
+ \let\subseteq=\subseteq@recthy
+ \let\supseteq=\supseteq@recthy
+ \let\subsetneq=\subsetneq@recthy
+ \let\supsetneq=\supsetneq@recthy
+ \let\nsubset=\nsubset@recthy
+ \let\nsupset=\nsupset@recthy
+ \let\nsubseteq=\nsubseteq@recthy
+ \let\nsupseteq=\nsupseteq@recthy
+
+
+ \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}}
+ }
+\fi
+}
+
+
+
+
+
+
+
+
+
+
+
+%%% ORdinal notations
+% constructive/recursive ordinals
+
+\AtEndOfPackage{
+\ifrecthy@noordinalnotations
+ \@packinfo{No ordinal notations loading.}
+\else
+ \@packinfo{ordinal notations loading.}
+
+\providecommand*{\wck}{\ensuremath{\omega^{ck}_1}}
+ % \newcommand*{\ordtype}[1]{\ensuremath{\@recthy@abs{#1}_{\kleeneO}}}
+ \newcommand*{\ordzero}{\ensuremath{0}}
+ \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%
+ \ifdefined\@PMG@braketarg
+ _{\abs{\@PMG@braketarg}}%
+ \fi}
+ \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
+ \let\uniqOrdNotations=\kleeneOuniq
+ \NewDocumentCommand{\kleeneless}{o}{<_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleenel=\kleeneless
+ \NewDocumentCommand{\kleeneleq}{o}{\leq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenenless}{o}{\nless_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleenenl=\kleenenless
+ \NewDocumentCommand{\kleenenleq}{o}{\nleq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenegtr}{o}{>_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleeneg=\kleenegtr
+ \NewDocumentCommand{\kleenegeq}{o}{\geq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenengtr}{o}{\ngtr_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleeneng=\kleenengtr
+ \NewDocumentCommand{\kleenengeq}{o}{\ngeq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \newcommand*{\kleenePlus}{\mathbin{+_{\kleeneO}}}
+ \newcommand*{\kleeneMul}{\cdot_{\kleeneO}}
+ \newcommand*{\kleenehgt}[1]{\lVert #1\rVert_{\kleeneO}}
+ \let\hgtO=\kleenehgt
+ \newcommand*{\kleenelim}[2]{{#1}_{[#2]}}
+ \newcommand*{\kleenepred}[1]{{#1}^{-}}
+
+\fi
+}
+
+
+
+
+% \newcommand*{\axiom}{2}{#1}
+%alpha REA stuff
+% \newcommand*{\alphaREA}[1][\alpha]{\ensuremath{ #1 \text{-REA}} }
+
+
+\newcommand*{\@PMG@VdashStar}{{\Vdash\smash{\mkern-12mu\raise4\p@\hbox{\text{\tiny*}}}\mkern2mu}}
+
+% Forcing
+\AtEndOfPackage{
+\ifrecthy@noforcing
+ \@packinfo{No forcing loading.}
+\else
+ \@packinfo{forcing loading.}
+ \providecommand*{\forces}{\def\@PMG@frcparenarg{}\def\@PMG@frcbraketarg{}\def\@PMG@curfrcsym{\Vdash}\@forcesBody}
+ \newcommand*{\@forcesBody}{\mathrel{{\@PMG@curfrcsym}^{\@PMG@frcparenarg}_{\@PMG@frcbraketarg}}}
+ \WithSuffix\def\@forcesBody(#1){\def\@PMG@frcparenarg{#1}\@forcesBody}
+ \WithSuffix\def\@forcesBody[#1]{\def\@PMG@frcbraketarg{#1}\@forcesBody}
+ \WithSuffix\def\@forcesBody*{\let\@PMG@curfrcsym=\@PMG@VdashStar\@forcesBody}
+
+ % \long\def\forces@[#1][#2]{\Vdash^{#2}_{#1}}
+ % \newcommand{\forces}{\optparams{\forces@}{[][]}%
+ % }
+ \providecommand*{\frc}{\forces}
+\fi
+}
+
+
+%%%%%%%%% Formula Classes
+
+\newcommand*{\@recthy@CDelta@default}{\prescript{\mathcal{C}}{}{\Delta}}
+\newcommand*{\@recthy@CSigma@default}{\prescript{\mathcal{C}}{}{\Sigma}}
+\newcommand*{\@recthy@CPi@default}{\prescript{\mathcal{C}}{}{\Pi}}
+\let\@recthy@CDelta=\@recthy@CDelta@default
+\let\@recthy@CSigma=\@recthy@CSigma@default
+\let\@recthy@CPi=\@recthy@CPi@default
+
+\DeclareOptionX{cdeltasym}[@recthy@CDelta@default]{\letcs{\@recthy@CDelta}{#1}}
+\DeclareOptionX{csigmasym}[@recthy@CSigma@default]{\letcs{\@recthy@CSigma}{#1}}
+\DeclareOptionX{cpisym}[@recthy@CPi@default]{\letcs{\@recthy@CPi}{#1}}
+
+% \DeclareOptionX<\@recthy@family>{cdeltasym}[]{\def\@recthy@CDelta{#1}}
+% \DeclareOptionX<\@recthy@family>{csigmasym}[]{\def\@recthy@CSigma{#1}}
+% \DeclareOptionX<\@recthy@family>{cpisym}[]{\def\@recthy@CPi{#1}}
+
+\AtEndOfPackage{
+\ifrecthy@nosyntax
+ \@packinfo{No syntax loading.}
+\else
+ \@packinfo{syntax loading.}
+ \recthy@strip{CDelta}
+ \recthy@strip{CSigma}
+ \recthy@strip{CPi}
+ \newcommand*{\deltan}[1]{\Delta_{#1}}
+ \WithSuffix\def\deltan[#1]#2{\Delta^{#1}_{#2}}
+ % \WithSuffix\def\deltan(#1)#2{\deltan{#2}\!\left(#1\right)}
+ \newcommand*{\deltaZeroN}[1]{\Delta^{0}_{#1}}
+ \WithSuffix\def\deltaZeroN[#1]#2{\Delta^{0,#1}_{#2}}
+ % \WithSuffix\def\deltaZeroN(#1)#2{\deltaZeroN{#2}\!\left(#1\right)}
+ \newcommand*{\deltaZeroTwo}{\deltaZeroN{2}}
+ \WithSuffix\def\deltaZeroTwo[#1]{\deltaZeroN[#1]{2}}
+ % \WithSuffix\def\deltaZeroTwo(#1){\deltaZeroN[#1]{2}}
+ \newcommand*{\deltaZeroThree}{\deltaZeroN{3}}
+ \WithSuffix\def\deltaZeroThree[#1]{\deltaZeroN[#1]{3}}
+ % \WithSuffix\def\deltaZeroThree(#1){\deltaZeroN[#1]{3}}
+ \newcommand*{\deltaZeroOne}{\deltaZeroN{1}}
+ \WithSuffix\def\deltaZeroOne[#1]{\deltaZeroN[#1]{1}}
+ % \WithSuffix\def\deltaZeroOne(#1){\deltaZeroN[#1]{1}}
+ \newcommand*{\deltaZeroZero}{\deltaZeroN{0}}
+ \WithSuffix\def\deltaZeroZero[#1]{\deltaZeroN[#1]{0}}
+ % \WithSuffix\def\deltaZeroZero(#1){\deltaZeroN[#1]{0}}
+
+
+ \newcommand*{\deltaOneN}[1]{\deltan{#1}^1}
+ \WithSuffix\def\deltaOneN[#1]#2{\Delta^{1,#1}_{#2}}
+ % \WithSuffix\def\deltaOneN(#1)#2{\deltaOneN{#2}\!\left(#1\right)}
+ \newcommand*{\deltaOneOne}{\deltaOneN{1}}
+ \WithSuffix\def\deltaOneOne[#1]{\deltaOneN[#1]{1}}
+ % \WithSuffix\def\deltaOneOne(#1){\deltaOneN[#1]{1}}
+ \newcommand*{\deltaOneTwo}{\deltaOneN{2}}
+ \WithSuffix\def\deltaOneTwo[#1]{\deltaOneN[#1]{2}}
+ % \WithSuffix\def\deltaOneTwo(#1){\deltaOneN[#1]{2}}
+ \newcommand*{\deltaOneThree}{\deltaOneN{3}}
+ \WithSuffix\def\deltaOneThree[#1]{\deltaOneN[#1]{3}}
+ % \WithSuffix\def\deltaOneThree(#1){\deltaOneN[#1]{3}}
+
+
+
+ \newcommand*{\sigman}[1]{\Sigma_{#1}}
+ \WithSuffix\def\sigman[#1]#2{\Sigma^{#1}_{#2}}
+ % \WithSuffix\def\sigman(#1)#2{\sigman{#2}\!\left(#1\right)}
+ \newcommand*{\sigmaZeroN}[1]{\Sigma^{0}_{#1}}
+ \WithSuffix\def\sigmaZeroN[#1]#2{\Sigma^{0,#1}_{#2}}
+ % \WithSuffix\def\sigmaZeroN(#1)#2{\sigmaZeroN{#2}\!\left(#1\right)}
+ \newcommand*{\sigmaZeroOne}{\sigmaZeroN{1}}
+ \WithSuffix\def\sigmaZeroOne[#1]{\sigmaZeroN[#1]{1}}
+ % \WithSuffix\def\sigmaZeroOne(#1){\sigmaZeroN[#1]{1}}
+ \newcommand*{\sigmaZeroTwo}{\sigmaZeroN{2}}
+ \WithSuffix\def\sigmaZeroTwo[#1]{\sigmaZeroN[#1]{2}}
+ % \WithSuffix\def\sigmaZeroTwo(#1){\sigmaZeroN[#1]{2}}
+ \newcommand*{\sigmaZeroThree}{\sigmaZeroN{3}}
+ \WithSuffix\def\sigmaZeroThree[#1]{\sigmaZeroN[#1]{3}}
+ % \WithSuffix\def\sigmaZeroThree(#1){\sigmaZeroN[#1]{3}}
+
+
+
+ \newcommand*{\sigmaOneN}[1]{\Sigma^1_{#1}}
+ \WithSuffix\def\sigmaOneN[#1]#2{\Sigma^{1,#1}_{#2}}
+ % \WithSuffix\def\sigmaOneN(#1)#2{\sigmaOneN{#2}\!\left(#1\right)}
+ \newcommand*{\sigmaOneOne}{\sigmaOneN{1}}
+ \WithSuffix\def\sigmaOneOne[#1]{\sigmaOneN[#1]{1}}
+ % \WithSuffix\def\sigmaOneOne(#1){\sigmaOneN[#1]{1}}
+ \newcommand*{\sigmaOneTwo}{\sigmaOneN{2}}
+ \WithSuffix\def\sigmaOneTwo[#1]{\sigmaOneN[#1]{2}}
+ % \WithSuffix\def\sigmaOneTwo(#1){\sigmaOneN[#1]{2}}
+ \newcommand*{\sigmaOneThree}{\sigmaOneN{3}}
+ \WithSuffix\def\sigmaOneThree[#1]{\sigmaOneN[#1]{3}}
+ % \WithSuffix\def\sigmaOneThree(#1){\sigmaOneN[#1]{3}}
+
+
+
+ \newcommand*{\pin}[1]{\Pi_{#1}}
+ \WithSuffix\def\pin[#1]#2{\Pi^{#1}_{#2}}
+ % \WithSuffix\def\pin(#1)#2{\pin{#2}\!\left(#1\right)}
+ \newcommand*{\piZeroN}[1]{\Pi^0_{#1}}
+ \WithSuffix\def\piZeroN[#1]#2{\Pi^{0,#1}_{#2}}
+ % \WithSuffix\def\piZeroN(#1)#2{\piZeroN{#2}\left(#1\right)}
+ \newcommand*{\piZeroOne}{\piZeroN{1}}
+ \WithSuffix\def\piZeroOne[#1]{\piZeroN[#1]{1}}
+ % \WithSuffix\def\piZeroOne(#1){\piZeroN[#1]{1}}
+ \newcommand*{\piZeroTwo}{\piZeroN{2}}
+ \WithSuffix\def\piZeroTwo[#1]{\piZeroN[#1]{2}}
+ % \WithSuffix\def\piZeroTwo(#1){\piZeroN[#1]{2}}
+ \newcommand*{\piZeroThree}{\piZeroN{3}}
+ \WithSuffix\def\piZeroThree[#1]{\piZeroN[#1]{3}}
+ % \WithSuffix\def\piZeroThree(#1){\piZeroN[#1]{3}}
+
+ \newcommand*{\piOneN}[1]{\Pi^1_{#1}}
+ \WithSuffix\def\piOneN[#1]#2{\Pi^{1,#1}_{#2}}
+ % \WithSuffix\def\piOneN(#1)#2{\piOneN{#2}\!\left(#1\right)}
+ \newcommand*{\piOneOne}{\piOneN{1}}
+ \WithSuffix\def\piOneOne[#1]{\piOneN[#1]{1}}
+ % \WithSuffix\def\piOneOne(#1){\piOneN[#1]{1}}
+ \newcommand*{\piOneTwo}{\piOneN{2}}
+ \WithSuffix\def\piOneTwo[#1]{\piOneN[#1]{2}}
+ % \WithSuffix\def\piOneTwo(#1){\piOneN[#1]{2}}
+ \newcommand*{\piOneThree}{\piOneN{3}}
+ \WithSuffix\def\piOneThree[#1]{\piOneN[#1]{3}}
+ % \WithSuffix\def\piOneThree(#1){\piOneN[#1]{3}}
+
+
+
+ %%%ABREVIATIONS
+ \newcommand*{\deltaz}{\deltaN{0}}
+ \newcommand*{\deltazn}{\deltaZeroN}
+ \newcommand*{\deltazii}{\deltaZeroTwo}
+ \newcommand*{\deltazi}{\deltaZeroOne}
+ \newcommand*{\deltazz}{\deltaZeroZero}
+ \newcommand*{\deltaziii}{\deltaZeroThree}
+ \newcommand*{\deltaIn}{\deltaOneN}
+ \newcommand*{\deltaIi}{\deltaOneOne}
+ \newcommand*{\deltaoneone}{\deltaOneOne}
+ \newcommand*{\deltaIii}{\deltaOneTwo}
+ \newcommand*{\deltaIiii}{\deltaOneThree}
+ \newcommand*{\sigmazn}{\sigmaZeroN}
+ \newcommand*{\sigmazi}{\sigmaZeroOne}
+ \newcommand*{\sigmazii}{\sigmaZeroTwo}
+ \newcommand*{\sigmaziii}{\sigmaZeroThree}
+ \newcommand*{\sigmaIn}{\sigmaOneN}
+ \newcommand*{\sigmaIi}{\sigmaOneOne}
+ \newcommand*{\sigmaIii}{\sigmaOneTwo}
+ \newcommand*{\sigmaIiii}{\sigmaOneThree}
+ \newcommand*{\pizn}{\piZeroN}
+ \newcommand*{\pizi}{\piZeroOne}
+ \newcommand*{\pizii}{\piZeroTwo}
+ \newcommand*{\piziii}{\piZeroThree}
+ \newcommand*{\piIn}{\piOneN}
+ \newcommand*{\piIi}{\piOneOne}
+ \newcommand*{\piIii}{\piOneTwo}
+ \newcommand*{\piIiii}{\piOneThree}
+
+ %%%%%%%%%%%%%
+ % \newcommand*{\sigmapizn}[1]{\sigmazn{#1} \union \pizn{#1}}
+ % \WithSuffix\def\sigmapizn[#1]#2{\sigmazn[#1]{#2} \union \pizn[#1]{#2}}
+ % \WithSuffix\def\sigmapizn(#1)#2{\sigmazn[#1]{#2} \union \pizn[#1]{#2}}
+ % \let\pisigmazn=\sigmapizn
+ %%%%%%%%%%%%%%
+
+ %%%%%%%%
+ % Logics
+ %\newcommand*{\equiv}
+ \newcommand*{\logic}[2]{\mathcal{L}_{#1,#2}}
+ % \newcommand*{\logicwiw}{\logic{\omega_{1}}{\omega}}
+ % \newcommand*{\Clogic}[2]{\mathcal{CL}_{#1,#2}}
+ % \newcommand*{\FOlogic}{\logic{\omega}{\omega}}
+ % \NewDocumentCommand{\hyplogic}{o}{\Clogic{\omega_{1}}{\omega}\ifthenelse{\isempty{#1}}{}{\left(#1\right)} }
+
+
+
+ %May never use...specific notation for computable formulas...supplanted by \( \sigmazn{\alpha} \) notation.
+ %%%%%%%%%%%
+
+
+
+
+
+ \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}}
+ \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}}
+ \newcommand*{\CdeltaZeroOne}{\CdeltaZeroN{1}}
+ \newcommand*{\CdeltaZeroZero}{\CdeltaZeroN{0}}
+ \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*{\CpiOneN}[1]{\Cpin[1]{#1}}
+ \newcommand*{\CpiOneOne}{\CpiOneN{1}}
+ \newcommand*{\CpiOneThree}{\CpiOneN{3}}
+ \newcommand*{\CpiOneTwo}{\CpiOneN{2}}
+ \newcommand*{\CpiZeroOne}{\CpiZeroN{1}}
+ \newcommand*{\CpiZeroThree}{\CpiZeroN{3}}
+ \newcommand*{\CpiZeroTwo}{\CpiZeroN{2}}
+ \newcommand*{\CsigmaOneN}[1]{\Csigman[1]{#1}}
+ \newcommand*{\CsigmaOneOne}{\CsigmaOneN{1}}
+ \newcommand*{\CsigmaOneThree}{\CsigmaOneN{3}}
+ \newcommand*{\CsigmaOneTwo}{\CsigmaOneN{2}}
+ \newcommand*{\CsigmaZeroN}[1]{\Csigman[0]{#1}}
+ \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}}
+ \WithSuffix\def\CsigmaOneTwo[#1]{\CsigmaOneN[#1]{2}}
+ \WithSuffix\def\CsigmaZeroN[#1]#2{\Csigma[0,#1]{#2}}
+ \WithSuffix\def\CsigmaZeroOne[#1]{\CsigmaZeroN[#1]{1}}
+ \WithSuffix\def\CsigmaZeroThree[#1]{\CsigmaZeroN[#1]{3}}
+ \WithSuffix\def\CsigmaZeroTwo[#1]{\CsigmaZeroN[#1]{2}}
+ \WithSuffix\def\CpiOneN[#1]#2{\Cpi[1,#1]{#2}}
+ \WithSuffix\def\CpiOneOne[#1]{\CpiOneN[#1]{1}}
+ \WithSuffix\def\CpiOneThree[#1]{\CpiOneN[#1]{3}}
+ \WithSuffix\def\CpiOneTwo[#1]{\CpiOneN[#1]{2}}
+ \WithSuffix\def\CpiZeroN[#1]#2{\Cpi[0,#1]{#2}}
+ \WithSuffix\def\CpiZeroOne[#1]{\CpiZeroN[#1]{1}}
+ \WithSuffix\def\CpiZeroThree[#1]{\CpiZeroN[#1]{3}}
+ \WithSuffix\def\CpiZeroTwo[#1]{\CpiZeroN[#1]{2}}
+ \WithSuffix\def\CdeltaOneN[#1]#2{\Cdelta[1,#1]{#2}}
+ \WithSuffix\def\CdeltaOneOne[#1]{\CdeltaOneN[#1]{1}}
+ \WithSuffix\def\CdeltaOneTwo[#1]{\CdeltaOneN[#1]{2}}
+ \WithSuffix\def\CdeltaOneThree[#1]{\CdeltaOneN[#1]{3}}
+ \WithSuffix\def\CdeltaZeroZero[#1]{\CdeltaZeroN[#1]{0}}
+ \WithSuffix\def\CdeltaZeroN[#1]#2{\Cdelta[0,#1]{#2}}
+ \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}}
+ \newcommand*{\Cdeltazn}{\CdeltaZeroN}
+ \newcommand*{\Cdeltazii}{\CdeltaZeroTwo}
+ \newcommand*{\Cdeltazi}{\CdeltaZeroOne}
+ \newcommand*{\Cdeltazz}{\CdeltaZeroZero}
+ \newcommand*{\Cdeltaziii}{\CdeltaZeroThree}
+ \newcommand*{\CdeltaIn}{\CdeltaOneN}
+ \newcommand*{\CdeltaIi}{\CdeltaOneOne}
+ \newcommand*{\Cdeltaoneone}{\CdeltaOneOne}
+ \newcommand*{\CdeltaIii}{\CdeltaOneTwo}
+ \newcommand*{\CdeltaIiii}{\CdeltaOneThree}
+ \newcommand*{\Csigmazn}{\CsigmaZeroN}
+ \newcommand*{\Csigmazi}{\CsigmaZeroOne}
+ \newcommand*{\Csigmazii}{\CsigmaZeroTwo}
+ \newcommand*{\Csigmaziii}{\CsigmaZeroThree}
+ \newcommand*{\CsigmaIn}{\CsigmaOneN}
+ \newcommand*{\CsigmaIi}{\CsigmaOneOne}
+ \newcommand*{\CsigmaIii}{\CsigmaOneTwo}
+ \newcommand*{\CsigmaIiii}{\CsigmaOneThree}
+ \newcommand*{\Cpizn}{\CpiZeroN}
+ \newcommand*{\Cpizi}{\CpiZeroOne}
+ \newcommand*{\Cpizii}{\CpiZeroTwo}
+ \newcommand*{\Cpiziii}{\CpiZeroThree}
+ \newcommand*{\CpiIn}{\CpiOneN}
+ \newcommand*{\CpiIi}{\CpiOneOne}
+ \newcommand*{\CpiIii}{\CpiOneTwo}
+ \newcommand*{\CpiIiii}{\CpiOneThree}
+
+%%%BOLDFACE
+
+ \newcommand*{\Deltan}[1]{\utilde{\symbf{\Delta}}_{#1}}
+ \WithSuffix\def\Deltan[#1]#2{\utilde{\symbf{\Delta}}^{#1}_{#2}}
+ % \WithSuffix\def\Deltan(#1)#2{\deltan{#2}\!\left(#1\right)}
+ \newcommand*{\DeltaZeroN}[1]{\utilde{\symbf{\Delta}}^{0}_{#1}}
+ \WithSuffix\def\DeltaZeroN[#1]#2{\utilde{\symbf{\Delta}}^{0,#1}_{#2}}
+ % \WithSuffix\def\DeltaZeroN(#1)#2{\DeltaZeroN{#2}\!\left(#1\right)}
+ \newcommand*{\DeltaZeroTwo}{\DeltaZeroN{2}}
+ \WithSuffix\def\DeltaZeroTwo[#1]{\DeltaZeroN[#1]{2}}
+ % \WithSuffix\def\DeltaZeroTwo(#1){\DeltaZeroN[#1]{2}}
+ \newcommand*{\DeltaZeroThree}{\DeltaZeroN{3}}
+ \WithSuffix\def\DeltaZeroThree[#1]{\DeltaZeroN[#1]{3}}
+ % \WithSuffix\def\DeltaZeroThree(#1){\DeltaZeroN[#1]{3}}
+ \newcommand*{\DeltaZeroOne}{\DeltaZeroN{1}}
+ \WithSuffix\def\DeltaZeroOne[#1]{\DeltaZeroN[#1]{1}}
+ % \WithSuffix\def\DeltaZeroOne(#1){\DeltaZeroN[#1]{1}}
+ \newcommand*{\DeltaZeroZero}{\DeltaZeroN{0}}
+ \WithSuffix\def\DeltaZeroZero[#1]{\DeltaZeroN[#1]{0}}
+ % \WithSuffix\def\DeltaZeroZero(#1){\DeltaZeroN[#1]{0}}
+
+
+ \newcommand*{\DeltaOneN}[1]{\Deltan{#1}^1}
+ \WithSuffix\def\DeltaOneN[#1]#2{\utilde{\symbf{\Delta}}^{1,#1}_{#2}}
+ % \WithSuffix\def\DeltaOneN(#1)#2{\DeltaOneN{#2}\!\left(#1\right)}
+ \newcommand*{\DeltaOneOne}{\DeltaOneN{1}}
+ \WithSuffix\def\DeltaOneOne[#1]{\DeltaOneN[#1]{1}}
+ % \WithSuffix\def\DeltaOneOne(#1){\DeltaOneN[#1]{1}}
+ \newcommand*{\DeltaOneTwo}{\DeltaOneN{2}}
+ \WithSuffix\def\DeltaOneTwo[#1]{\DeltaOneN[#1]{2}}
+ % \WithSuffix\def\DeltaOneTwo(#1){\DeltaOneN[#1]{2}}
+ \newcommand*{\DeltaOneThree}{\DeltaOneN{3}}
+ \WithSuffix\def\DeltaOneThree[#1]{\DeltaOneN[#1]{3}}
+ % \WithSuffix\def\DeltaOneThree(#1){\DeltaOneN[#1]{3}}
+
+
+
+ \newcommand*{\Sigman}[1]{\utilde{\symbf{\Sigma}}_{#1}}
+ \WithSuffix\def\Sigman[#1]#2{\utilde{\symbf{\Sigma}}^{#1}_{#2}}
+ % \WithSuffix\def\Sigman(#1)#2{\sigman{#2}\!\left(#1\right)}
+ \newcommand*{\SigmaZeroN}[1]{\utilde{\symbf{\Sigma}}^{0}_{#1}}
+ \WithSuffix\def\SigmaZeroN[#1]#2{\utilde{\symbf{\Sigma}}^{0,#1}_{#2}}
+ % \WithSuffix\def\SigmaZeroN(#1)#2{\SigmaZeroN{#2}\!\left(#1\right)}
+ \newcommand*{\SigmaZeroOne}{\SigmaZeroN{1}}
+ \WithSuffix\def\SigmaZeroOne[#1]{\SigmaZeroN[#1]{1}}
+ % \WithSuffix\def\SigmaZeroOne(#1){\SigmaZeroN[#1]{1}}
+ \newcommand*{\SigmaZeroTwo}{\SigmaZeroN{2}}
+ \WithSuffix\def\SigmaZeroTwo[#1]{\SigmaZeroN[#1]{2}}
+ % \WithSuffix\def\SigmaZeroTwo(#1){\SigmaZeroN[#1]{2}}
+ \newcommand*{\SigmaZeroThree}{\SigmaZeroN{3}}
+ \WithSuffix\def\SigmaZeroThree[#1]{\SigmaZeroN[#1]{3}}
+ % \WithSuffix\def\SigmaZeroThree(#1){\SigmaZeroN[#1]{3}}
+
+
+
+ \newcommand*{\SigmaOneN}[1]{\utilde{\symbf{\Sigma}}^1_{#1}}
+ \WithSuffix\def\SigmaOneN[#1]#2{\utilde{\symbf{\Sigma}}^{1,#1}_{#2}}
+ % \WithSuffix\def\SigmaOneN(#1)#2{\SigmaOneN{#2}\!\left(#1\right)}
+ \newcommand*{\SigmaOneOne}{\SigmaOneN{1}}
+ \WithSuffix\def\SigmaOneOne[#1]{\SigmaOneN[#1]{1}}
+ % \WithSuffix\def\SigmaOneOne(#1){\SigmaOneN[#1]{1}}
+ \newcommand*{\SigmaOneTwo}{\SigmaOneN{2}}
+ \WithSuffix\def\SigmaOneTwo[#1]{\SigmaOneN[#1]{2}}
+ % \WithSuffix\def\SigmaOneTwo(#1){\SigmaOneN[#1]{2}}
+ \newcommand*{\SigmaOneThree}{\SigmaOneN{3}}
+ \WithSuffix\def\SigmaOneThree[#1]{\SigmaOneN[#1]{3}}
+ % \WithSuffix\def\SigmaOneThree(#1){\SigmaOneN[#1]{3}}
+
+
+
+ \newcommand*{\Pin}[1]{\utilde{\symbf{\Pi}}_{#1}}
+ \WithSuffix\def\Pin[#1]#2{\utilde{\symbf{\Pi}}^{#1}_{#2}}
+ % \WithSuffix\def\Pin(#1)#2{\pin{#2}\!\left(#1\right)}
+ \newcommand*{\PiZeroN}[1]{\utilde{\symbf{\Pi}}^0_{#1}}
+ \WithSuffix\def\PiZeroN[#1]#2{\utilde{\symbf{\Pi}}^{0,#1}_{#2}}
+ % \WithSuffix\def\PiZeroN(#1)#2{\PiZeroN{#2}\left(#1\right)}
+ \newcommand*{\PiZeroOne}{\PiZeroN{1}}
+ \WithSuffix\def\PiZeroOne[#1]{\PiZeroN[#1]{1}}
+ % \WithSuffix\def\PiZeroOne(#1){\PiZeroN[#1]{1}}
+ \newcommand*{\PiZeroTwo}{\PiZeroN{2}}
+ \WithSuffix\def\PiZeroTwo[#1]{\PiZeroN[#1]{2}}
+ % \WithSuffix\def\PiZeroTwo(#1){\PiZeroN[#1]{2}}
+ \newcommand*{\PiZeroThree}{\PiZeroN{3}}
+ \WithSuffix\def\PiZeroThree[#1]{\PiZeroN[#1]{3}}
+ % \WithSuffix\def\PiZeroThree(#1){\PiZeroN[#1]{3}}
+
+ \newcommand*{\PiOneN}[1]{\utilde{\symbf{\Pi}}^1_{#1}}
+ \WithSuffix\def\PiOneN[#1]#2{\utilde{\symbf{\Pi}}^{1,#1}_{#2}}
+ % \WithSuffix\def\PiOneN(#1)#2{\PiOneN{#2}\!\left(#1\right)}
+ \newcommand*{\PiOneOne}{\PiOneN{1}}
+ \WithSuffix\def\PiOneOne[#1]{\PiOneN[#1]{1}}
+ % \WithSuffix\def\PiOneOne(#1){\PiOneN[#1]{1}}
+ \newcommand*{\PiOneTwo}{\PiOneN{2}}
+ \WithSuffix\def\PiOneTwo[#1]{\PiOneN[#1]{2}}
+ % \WithSuffix\def\PiOneTwo(#1){\PiOneN[#1]{2}}
+ \newcommand*{\PiOneThree}{\PiOneN{3}}
+ \WithSuffix\def\PiOneThree[#1]{\PiOneN[#1]{3}}
+ % \WithSuffix\def\PiOneThree(#1){\PiOneN[#1]{3}}
+
+
+
+ %%%ABREVIATIONS
+ \newcommand*{\Deltaz}{\deltaN{0}}
+ \newcommand*{\Deltazn}{\DeltaZeroN}
+ \newcommand*{\Deltazii}{\DeltaZeroTwo}
+ \newcommand*{\Deltazi}{\DeltaZeroOne}
+ \newcommand*{\Deltazz}{\DeltaZeroZero}
+ \newcommand*{\Deltaziii}{\DeltaZeroThree}
+ \newcommand*{\DeltaIn}{\DeltaOneN}
+ \newcommand*{\DeltaIi}{\DeltaOneOne}
+ \newcommand*{\Deltaoneone}{\DeltaOneOne}
+ \newcommand*{\DeltaIii}{\DeltaOneTwo}
+ \newcommand*{\DeltaIiii}{\DeltaOneThree}
+ \newcommand*{\Sigmazn}{\SigmaZeroN}
+ \newcommand*{\Sigmazi}{\SigmaZeroOne}
+ \newcommand*{\Sigmazii}{\SigmaZeroTwo}
+ \newcommand*{\Sigmaziii}{\SigmaZeroThree}
+ \newcommand*{\SigmaIn}{\SigmaOneN}
+ \newcommand*{\SigmaIi}{\SigmaOneOne}
+ \newcommand*{\SigmaIii}{\SigmaOneTwo}
+ \newcommand*{\SigmaIiii}{\SigmaOneThree}
+ \newcommand*{\Pizn}{\PiZeroN}
+ \newcommand*{\Pizi}{\PiZeroOne}
+ \newcommand*{\Pizii}{\PiZeroTwo}
+ \newcommand*{\Piziii}{\PiZeroThree}
+ \newcommand*{\PiIn}{\PiOneN}
+ \newcommand*{\PiIi}{\PiOneOne}
+ \newcommand*{\PiIii}{\PiOneTwo}
+ \newcommand*{\PiIiii}{\PiOneThree}
+
+
+
+
+
+
+\fi
+}
+
+
+\def\@recthy@recfSYM@default{\phi}
+\let\@recthy@recfSYM=\@recthy@recfSYM@default
+\def\@recthy@recfnlSYM@default{\Phi}
+\let\@recthy@recfnlSYM=\@recthy@recfnlSYM@default
+\def\@recthy@useSYM@default{\ltx@ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}}
+\let\@recthy@useSYM=\@recthy@useSYM@default
+%%%ABREVIATIONS
+\DeclareOptionX{recfnlsym}[@recthy@recfnlSYM@default]{\letcs{\@recthy@recfnlSYM}{#1}}
+\DeclareOptionX{recfsym}[@recthy@recfSYM@default]{\letcs{\@recthy@recfSYM}{#1}}
+\DeclareOptionX{usesym}[@recthy@useSYM@default]{\letcs{\@recthy@useSYM}{#1}}
+
+
+%Degree Classes
+\AtEndOfPackage{
+\ifrecthy@nodegclasses
+ \@packinfo{No degree classes loading.}
+\else
+ \@packinfo{Degree classes loading.}
+ \newcommand{\Low}[1][]{\ensuremath{ \text{Low}^{#1} }}
+ \newcommand{\LowN}[2][]{\ensuremath{ \text{Low}^{#1}_{#2} }}
+ \newcommand{\lowN}[2][]{\ensuremath{ \mathcal{L}^{#1}_{#2} }}
+\fi
+}
+
+\AtEndOfPackage{
+\ifrecthy@nocomputations
+ \@packinfo{No computations loading.}
+\else
+%%%%%%
+ \newcommand*{\murec}[2]{\ensuremath{\mu#1\left( #2 \right) }}
+
+ %\newcommand*{\brecfSYM}{\phi}
+
+ % \newcommand*{\recf}[3][]{\@recthy@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][]{\@recthy@recfnlSYM_{#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)}%
+ }}
+ \NewDocumentCommand{\recf}{od()md()}{
+ \@recthy@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*{\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{\simeq}}
+ \newcommand*{\ncequiv}{\mathrel{\not\simeq}}
+ \NewDocumentCommand{\conv}{O{}}{\mathpunct{\downarrow}_{#1}}
+ \let\converge=\conv
+ %\newcommand*{\convs}[1]{\ensuremath{\conv_{#1}}}
+% \NewDocumentCommand{\nconv}{o}{\mathpunct{\mkern-4mu{\arrownot\mkern 4mu \downarrow}_{#1}}}
+ \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{\@recthy@useSYM}[#1]}
+% \newcommand*{\use}[1]{\ltx@ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}\left(#1\right)}
+ % \NewDocumentCommand{\REset}{omd()}{
+ % W_{#2\IfNoValueTF{#1}{}{, #1}}\IfNoValueTF{#3}{}{^{#3}}
+ % }
+
+ \newcommand*{\REset}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@REsetbody}
+ \newcommand*{\@REsetbody}[1]{W\ifdefined\@PMG@parenarg
+ ^{\@PMG@parenarg}%
+ \fi%
+ \ifdefined\@PMG@braketarg
+ _{#1, {\@PMG@braketarg}}%
+ \else
+ _{#1}
+ \fi}
+ \WithSuffix\def\@REsetbody(#1){\def\@PMG@parenarg{#1}\@REsetbody}
+ \WithSuffix\def\@REsetbody[#1]{\def\@PMG@braketarg{#1}\@REsetbody}
+ \newcommand*{\alphaREAop}[2][]{\mathcal{J}^{#2}_{#1}}
+ \let\aREAop=\alphaREAop
+ \let\reaop=\alphaREAop
+ \newcommand*{\oneREAop}[1]{J_{#1}}
+ \let\iREAop=\oneREAop
+ \WithSuffix\def\reaop*#1{\oneREAop{#1}}
+ %converges
+
+\fi
+
+
+
+\ifrecthy@nodegrees
+ \@packinfo{No degrees loading.}
+\else
+
+
+ %%%%%%Turing Degrees
+ \def\firsttokof@pmg#1{\first@pmg@rdmxs(#1)}
+ \def\first@pmg@rdmxs(#1#2){#1}
+
+ \providecommand*{\Tdegvar}[1]{\symbf{#1}}
+ \providecommand*{\Tdegof}[1]{\utilde{#1}}
+ \providecommand*{\Tdeg}[1]{\ifthenelse{
+ % \equal{\detokenize{\Tzero}}{\futurelet\next@pmg\discard#1\@nil\expandafter\detokenize{\next@pmg}}
+ \equal{\detokenize{\Tzero}}{\detokenize{#1}} \OR
+ \equal{\detokenize{\Tzero}}{\detokenize{#1}} \OR
+ \equal{\detokenize{\zeroj}}{\detokenize{#1}} \OR
+ \equal{\detokenize{\zerojj}}{\detokenize{#1}} \OR
+ \equal{\detokenize{\zerojjj}}{\detokenize{#1}} \OR
+ \equal{\string \zeron }{\expandafter\string \first@pmg@rdmxs(#1)}
+ }{\Tdegof{#1}}{\Tdegvar{#1}}}
+
+ \providecommand*{\Tjump}[1]{#1'}
+ \let\jump=\Tjump
+ \providecommand*{\jumpn}[2]{#1^{(#2)}}
+ \providecommand*{\jjump}[1]{#1''}
+ % \newcommand*{\Tzerosym}{\MVZero}
+ \newcommand*{\Tzerosym}{\mathbb{0}}
+ \providecommand*{\Tzero}{{\Tzerosym}}
+ \providecommand*{\zeron}[1]{{\Tzerosym}^{(#1)}}
+ \providecommand*{\zeroj}{\jump{{\Tzerosym}}}
+ \let\Tzeroj=\zeroj
+ \providecommand*{\zerojj}{\jump{\jump{{\Tzerosym}}}}
+ \providecommand*{\zerojjj}{\jump{\jump{\jump{{\Tzerosym}}}}}
+ \let\Tzerojj=\zerojj
+ \let\Tzerojjj=\zerojjj
+
+ %%Misc Recursion theory stuff
+ %turing equivalent
+ \newcommand*{\@recthy@TSYM}{\symbf{T}}
+ \providecommand*{\Tequiv}{\mathrel{\equiv_{\@recthy@TSYM}}}
+ \providecommand*{\Teq}{\Tequiv}
+ \providecommand*{\nTequiv}{\mathrel{\ncong_{\@recthy@TSYM}}}
+ \providecommand*{\nTeq}{\nTequiv}
+ %turing below
+
+ \providecommand*{\Tlneq}{\lneq_{\@recthy@TSYM}}
+ \providecommand*{\Tleq}{\leq_{\@recthy@TSYM}}
+ \providecommand*{\Tgneq}{\gneq_{\@recthy@TSYM}}
+ \providecommand*{\Tgeq}{\geq_{\@recthy@TSYM}}
+ \providecommand*{\Tgtr}{>_{\@recthy@TSYM}}
+ \providecommand*{\Tless}{<_{\@recthy@TSYM}}
+ \providecommand*{\nTleq}{\nleq_{\@recthy@TSYM}}
+ \providecommand*{\nTgeq}{\ngeq_{\@recthy@TSYM}}
+
+ \providecommand*{\Tdegjoin}{\mathbin{\vee_{\@recthy@TSYM}}}
+ \providecommand*{\Tdegmeet}{\mathbin{\wedge_{\@recthy@TSYM}}}
+ \providecommand*{\Tmeet}{\Tdegmeet}
+ \providecommand*{\Tsetjoin}{\mathbin{\oplus}}
+ \providecommand*{\TsetJoin}{\mathop{\bigoplus}}
+ \providecommand*{\Tplus}{\Tsetjoin}
+ \providecommand*{\TPlus}{\TsetJoin}
+ \providecommand*{\Tjoin}{\Tsetjoin}
+ \providecommand*{\TJoin}{\TsetJoin}
+ \providecommand*{\Tincompat}{\incompat@recthy[\@recthy@TSYM]}
+ \providecommand*{\Tincomp}{\Tincompat}
+ \providecommand*{\Tcompat}{\compat@recthy[\@recthy@TSYM]}
+ \providecommand*{\nTincompat}{\Tcompat}
+ \providecommand*{\nTincomp}{\Tcompat}
+
+
+
+ \newcommand*{\@recthy@ttSYM}{\ensuremath{\tiny \mathtt{tt}}}
+ \newcommand*{\ttSYM}{\@recthy@ttSYM}
+ \newcommand*{\ttlneq}{\lneq_{\@recthy@ttSYM}}
+ \newcommand*{\ttleq}{\leq_{\@recthy@ttSYM}}
+ \newcommand*{\ttgneq}{\gneq_{\@recthy@ttSYM}}
+ \newcommand*{\ttgeq}{\geq_{\@recthy@ttSYM}}
+ \newcommand*{\ttgtr}{>_{\@recthy@ttSYM}}
+ \newcommand*{\ttless}{<_{\@recthy@ttSYM}}
+ \newcommand*{\ttnleq}{\nleq_{\@recthy@ttSYM}}
+ \newcommand*{\ttngeq}{\ngeq_{\@recthy@ttSYM}}
+\fi
+
+}
+
+
+
+% \ProcessOptions*
+% \ProcessOptionsX<\@recthy@family>
+\ProcessOptionsX
+
+
+
+
+
+
+