From 79a173622efe7820bb3dfefaeb0b13303ef08b08 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Sat, 23 May 2020 03:00:54 +0000
Subject: CTAN sync 202005230300

---
 macros/latex/contrib/rec-thy/rec-thy.sty | 330 ++++++++++++++++++++++++++-----
 1 file changed, 283 insertions(+), 47 deletions(-)

(limited to 'macros/latex/contrib/rec-thy/rec-thy.sty')

diff --git a/macros/latex/contrib/rec-thy/rec-thy.sty b/macros/latex/contrib/rec-thy/rec-thy.sty
index 4f69ee5fe3..e4faaa5454 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.sty
+++ b/macros/latex/contrib/rec-thy/rec-thy.sty
@@ -1,5 +1,7 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rec-thy}[2019/02/17 v3.01  Provides commands for writing up recursion theory papers]
+% Release Notes see README
+\def\recthyVersion{3.3}
+\ProvidesPackage{rec-thy}[v3.3 Provides commands for writing up recursion theory papers]
 \makeatletter
 % \newcommand*{\@curpack}{\@currname} %rec-thy.sty
 \newcommand*{\@packinfo}[1]{\PackageInfo{rec-thy}{#1}}
@@ -12,10 +14,7 @@
 %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}
@@ -23,6 +22,7 @@
 \RequirePackage{xifthen}
 \RequirePackage{xkeyval}
 \RequirePackage{etoolbox}
+\RequirePackage{pict2e,picture}
 \robustify\(
 \robustify\)
 \RequirePackage{xparse}
@@ -103,6 +103,7 @@
 \newif\ifrecthy@nosuppprioritytrees \recthy@nosuppprioritytreestrue
 \newif\ifrecthy@hyperreqs \recthy@hyperreqstrue
 \newif\ifrecthy@nooperators \recthy@nooperatorsfalse
+\newif\ifrecthy@fix@typeset \recthy@fix@typesettrue
 %\newif\ifrecthy@nomodule \recthy@nomodulefalse
 
 \DeclareOptionX{nohyphenation}{\recthy@nohyphenationtrue}
@@ -131,6 +132,11 @@
 \DeclareOptionX{suppPriorityTrees}{\recthy@nosuppprioritytreesfalse}
 \DeclareOptionX{nohyperreqs}{\recthy@hyperreqsfalse}
 \DeclareOptionX{nooperators}{\recthy@nooperatorstrue}
+\DeclareOptionX{compat31}{\recthy@compat@threeOne}
+\DeclareOptionX{nofixtype}{\ifrecthy@fix@typesetfalse}
+
+\newcommand*{\recthy@compat@threeOne}{\recthy@rollback@threeTwo@threeOne@REA}
+\newcommand*{\recthy@rollback@threeTwo@threeOne@REA}{}
 %\DeclareOptionX{nomodule}{\recthy@nomoduletrue}
 
 \DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}}
@@ -142,6 +148,84 @@
 \let\@recthy@ballsymb\@recthy@ballsymb@default
 \DeclareOptionX{ballsymb}[@recthy@ballsymb@default]{\letcs{\@recthy@ballsymb}{#1}}
 
+\AtEndOfPackage{
+    \ifrecthy@fix@typeset
+        %Defining \overbar
+        \let\save@mathaccent\mathaccent
+    \newcommand*\if@single[3]{%
+      \setbox0\hbox{${\mathaccent"0362{#1}}^H$}%
+      \setbox2\hbox{${\mathaccent"0362{\kern0pt#1}}^H$}%
+      \ifdim\ht0=\ht2 #3\else #2\fi
+      }
+    %The bar will be moved to the right by a half of \macc@kerna, which is computed by amsmath:
+    \newcommand*\rel@kern[1]{\kern#1\dimexpr\macc@kerna}
+    %If there's a superscript following the bar, then no negative kern may follow the bar;
+    %an additional {} makes sure that the superscript is high enough in this case:
+    \providecommand*\overbar{\relax}
+    \renewcommand*\overbar[1]{\@ifnextchar^{{\over@bar{#1}{0}}}{\over@bar{#1}{1}}}
+    %Use a separate algorithm for single symbols:
+    \newcommand*\over@bar[2]{\if@single{#1}{\over@bar@{#1}{#2}{1}}{\over@bar@{#1}{#2}{2}}}
+    \newcommand*\over@bar@[3]{%
+      \begingroup
+      \def\mathaccent##1##2{%
+    %Enable nesting of accents:
+        \let\mathaccent\save@mathaccent
+    %If there's more than a single symbol, use the first character instead (see below):
+        \if#32 \let\macc@nucleus\first@char \fi
+    %Determine the italic correction:
+        \setbox\z@\hbox{$\macc@style{\macc@nucleus}_{}$}%
+        \setbox\tw@\hbox{$\macc@style{\macc@nucleus}{}_{}$}%
+        \dimen@\wd\tw@
+        \advance\dimen@-\wd\z@
+    %Now \dimen@ is the italic correction of the symbol.
+        \divide\dimen@ 3
+        \@tempdima\wd\tw@
+        \advance\@tempdima-\scriptspace
+    %Now \@tempdima is the width of the symbol.
+        \divide\@tempdima 10
+        \advance\dimen@-\@tempdima
+    %Now \dimen@ = (italic correction / 3) - (Breite / 10)
+        \ifdim\dimen@>\z@ \dimen@0pt\fi
+    %The bar will be shortened in the case \dimen@<0 !
+        \rel@kern{0.6}\kern-\dimen@
+        \if#31
+          \overline{\rel@kern{-0.6}\kern\dimen@\macc@nucleus\rel@kern{0.4}\kern\dimen@}%
+          \advance\dimen@0.4\dimexpr\macc@kerna
+    %Place the combined final kern (-\dimen@) if it is >0 or if a superscript follows:
+          \let\final@kern#2%
+          \ifdim\dimen@<\z@ \let\final@kern1\fi
+          \if\final@kern1 \kern-\dimen@\fi
+        \else
+          \overline{\rel@kern{-0.6}\kern\dimen@#1}%
+        \fi
+      }%
+      \macc@depth\@ne
+      \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar
+      \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}%
+      \macc@set@skewchar\relax
+      \let\mathaccentV\macc@nested@a
+    %The following initialises \macc@kerna and calls \mathaccent:
+      \if#31
+        \macc@nested@a\relax111{#1}%
+      \else
+    %If the argument consists of more than one symbol, and if the first token is
+    %a letter, use that letter for the computations:
+        \def\gobble@till@marker##1\endmarker{}%
+        \futurelet\first@char\gobble@till@marker#1\endmarker
+        \ifcat\noexpand\first@char A\else
+          \def\first@char{}%
+        \fi
+        \macc@nested@a\relax111{\first@char}%
+      \fi
+      \endgroup
+    }
+    \else
+        \@packinfo{Not loading Fix Typesetting}
+    \fi
+
+}
+
+
 \AtEndOfPackage{
     \ifrecthy@noprioritytrees
         \@packinfo{Not loading Priority Tree Helper}
@@ -287,16 +371,104 @@
 \else
     \@packinfo{Loading subfun defs.}
     %DOCUMENT ME
+    \newcommand{\@pnrelbar}{%
+  \linethickness{\dimen2}%
+  \sbox\z@{$\m@th\prec$}%
+  \dimen@=1.1\ht\z@
+  \begin{picture}(\dimen@,.4ex)
+  \roundcap
+  \put(0,.2ex){\line(1,0){\dimen@}}
+  \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+  \end{picture}%
+}
+
+%     \newcommand{\not@pnrelbar}{%
+%   \linethickness{\dimen2}%
+%   \sbox\z@{$\m@th\nprec$}%
+%   \dimen@=1.1\ht\z@
+%   \begin{picture}(\dimen@,.4ex)
+%   \roundcap
+%   \put(0,.2ex){\line(1,0){\dimen@}}
+%   \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+%   \end{picture}%
+% }
+
+    \newcommand{\@snrelbar}{%
+  \linethickness{\dimen2}%
+  \sbox\z@{$\m@th\succ$}%
+  \dimen@=1.1\ht\z@
+  \begin{picture}(\dimen@,.4ex)
+  \roundcap
+  \put(0,.2ex){\line(1,0){\dimen@}}
+  \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+  \end{picture}%
+}
+
+%     \newcommand{\not@snrelbar}{%
+%   \linethickness{\dimen2}%
+%   \sbox\z@{$\m@th\nsucc$}%
+%   \dimen@=1.1\ht\z@
+%   \begin{picture}(\dimen@,.4ex)
+%   \roundcap
+%   \put(0,.2ex){\line(1,0){\dimen@}}
+%   \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+%   \end{picture}%
+% }
+
+\newcommand{\@precneq}{\mathrel{\vcenter{\hbox{\text{\prec@neq}}}}}
+\newcommand{\prec@neq}{%
+  \dimen2=\f@size\dimexpr.04pt\relax
+  \oalign{%
+    \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+    $\m@th\prec$\cr
+    \noalign{\kern-.5\dimen2}
+    \hidewidth\@pnrelbar\hidewidth\cr
+  }%
+}
+
+% \newcommand{\@nprecneq}{\mathrel{\vcenter{\hbox{\text{\nprec@neq}}}}}
+% \newcommand{\nprec@neq}{%
+%   \dimen2=\f@size\dimexpr.04pt\relax
+%   \oalign{%
+%     \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+%     $\m@th\nprec$\cr
+%     \noalign{\kern-.5\dimen2}
+%     \hidewidth\not@pnrelbar\hidewidth\cr
+%   }%
+% }
+
+\newcommand{\@succneq}{\mathrel{\vcenter{\hbox{\text{\succ@neq}}}}}
+\newcommand{\succ@neq}{%
+  \dimen2=\f@size\dimexpr.04pt\relax
+  \oalign{%
+    \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+    $\m@th\prec$\cr
+    \noalign{\kern-.5\dimen2}
+    \hidewidth\@snrelbar\hidewidth\cr
+  }%
+}
+
+% \newcommand{\@nsuccneq}{\mathrel{\vcenter{\hbox{\text{\nsucc@neq}}}}}
+% \newcommand{\nsucc@neq}{%
+%   \dimen2=\f@size\dimexpr.04pt\relax
+%   \oalign{%
+%     \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+%     $\m@th\nprec$\cr
+%     \noalign{\kern-.5\dimen2}
+%     \hidewidth\not@snrelbar\hidewidth\cr
+%   }%
+% }
+
     \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{\subfunneq}{o}{\@precneq\IfNoValueTF{#1}{}{_{#1}}}
     \NewDocumentCommand{\supfuneq}{o}{\succeq\IfNoValueTF{#1}{}{_{#1}}}
+    \NewDocumentCommand{\supfunneq}{o}{\@succneq\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
 }
 
@@ -449,7 +621,8 @@
 \fi
 }
 
-\newcommand*{\@recthy@abs}[1]{\lvert#1\rvert}
+% \newcommand*{\@recthy@abs}[1]{\lvert#1\rvert}
+\DeclarePairedDelimiter\@recthy@abs{\lvert}{\rvert}
 \newcommand*{\@recthy@ensuretext}[1]{\ensuremath{\text{#1}}}
 \AtEndOfPackage{
 \ifrecthy@nomath
@@ -466,7 +639,8 @@
     \else
         \DeclareMathOperator{\Ord}{Ord}
     \fi
-
+    \DeclarePairedDelimiter\ceil{\lceil}{\rceil}
+    \DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
 
     \recthy@strip{abs}
     \ifdefined\dom
@@ -480,17 +654,40 @@
     \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}}
+    \let\recthy@rollback@threeTwo@threeOne@REA@mathsave=\recthy@rollback@threeTwo@threeOne@REA
+    \renewcommand*{\recthy@rollback@threeTwo@threeOne@REA}{
+        \providecommand*{\map}[2]{:#1\mapsto #2}
+        \providecommand*{\functo}[3]{#1\map{#2}{#3}}
+        \ifdefined\funcomp
+        \else
+            \let\funcomp=\compfunc
+        \fi
+        \recthy@rollback@threeTwo@threeOne@REA@mathsave
+    }
+
     \providecommand*{\compfunc}{\mathbin{\circ}}
     \ifdefined\compose
     \else
         \let\compose=\compfunc
     \fi
-    \ifdefined\funcomp
-    \else
-        \let\funcomp=\compfunc
-    \fi
+    \ltx@ifpackageloaded{unicode-math}{
+            \newcommand{\pmapsto}{\mathrel{\nvrightarrow}}
+            \newcommand{\pmapsfrom}{\mathrel{\nvleftarrow}}
+    }{
+        % \newcommand{\pmapsto}{}% just for safety
+        % \newcommand{\pmapsfrom}{}% just for safety
+
+        \DeclareRobustCommand{\pmapsto}{\mathrel{\mathpalette\p@to@gets\to}}
+        \DeclareRobustCommand{\pmapsfrom}{\mathrel{\mathpalette\p@to@gets\gets}}
+
+        \newcommand{\p@to@gets}[2]{%
+          \ooalign{\hidewidth$\m@th#1\mapstochar\mkern5mu$\hidewidth\cr$\m@th#1\to$\cr}%
+        }
+    }
+    \newcommand{\fpmapsto}{\mathrel{\pmapsto_{< \infty}}}
+    \newcommand{\fpmapsfrom}{\mathrel{\pmapsfrom_{< \infty}}}
+    \newcommand{\ParFuncs}[2]{{#2}^{\subset #1}}
+    \newcommand{\FinParFuncs}[2]{{#2}^{\subset_{< \infty} #1}}
     \recthy@strip{ensuretext}
 \fi
 }
@@ -571,10 +768,16 @@
 \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}
+\def\@recthy@REA{REA}
+\def\@recthy@CEA{CEA}
+
+\NewDocumentCommand{\REA}{d()o}{\ensuremath{\IfValueTF{#2}{#2-}{}\text{\@recthy@REA}\IfValueTF{#1}{[#1]}{}}}
+\NewDocumentCommand{\CEA}{d()o}{\ensuremath{\IfValueTF{#2}{#2-}{}\text{\@recthy@CEA}\IfValueTF{#1}{[#1]}{}}}
+
+% \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
@@ -597,9 +800,7 @@
 \DeclareOptionX{ceaterms}{%
             \let\@recthy@REA=\@recthy@CEA
             }
-\DeclareOptionX{reaterms}{%
-            \let\@recthy@CEA=\@recthy@REA
-            }
+
 
 
 
@@ -614,8 +815,6 @@
     \recthy@strip{CE}
     \recthy@strip{Re}
     \recthy@strip{Ce}
-    \recthy@strip{REA}
-    \recthy@strip{CEA}
     \recthy@strip{recursive}
     \recthy@strip{computable}
     \recthy@strip{recursivelyEnumerable}
@@ -632,7 +831,7 @@
 
 
 
-\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\middle | #2} \right \}}
+\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\mid  #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 \}}}
@@ -652,6 +851,7 @@
 % \newcommand*{\@recthy@setcmpminusSYM}{\backsim}
 % \newcommand*{\@recthy@setminuscmp}[1]{\mathop{\@recthy@setcmpminusSYM} #1}
 \newcommand*{\@recthy@setovercmp}[1]{\overline{#1}}
+\newcommand*{\@recthy@setsimcmp}[1]{\backsim #1}
 \let\@recthy@setcmp=\@recthy@setovercmp
 \def\@recthy@setdiffSYM{-}
 \newcommand*{\@recthy@setdiff}{\mathbin{\@recthy@setdiffSYM}}
@@ -663,7 +863,7 @@
 
 
 \AtEndOfPackage{
-\WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2}
+% \WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2}
 \ifrecthy@nosets
     \@packinfo{No set cmds loading.}
 \else
@@ -715,6 +915,8 @@
         \newcommand*{\nforall@recthy}{\nforall@orig@recthy}
         \newcommand*{\existsuniq}{\exists@orig@recthy !}
         \newcommand*{\nexistsuniq}{\nexists@orig@recthy !}
+
+        \NewDocumentCommand{\axset}{D<>{}d()O{}d()}
         \WithSuffix\def\existsuniq(#1){\left(\existsuniq #1 \right)\!}
         \WithSuffix\def\nexistsuniq(#1){\left(\nexistsuniq #1 \right)\!}
         \WithSuffix\def\existsuniq[#1]{\left[\existsuniq #1 \right]\!}
@@ -943,27 +1145,44 @@
 \else
     \@packinfo{ordinal notations loading.}
 
-\providecommand*{\wck}{\ensuremath{\omega^{ck}_1}}
+\providecommand*{\wck}{\ensuremath{\omega^{\mathrm{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
+   \NewDocumentCommand{\kleeneO}{sD(){}oD(){}}{{
+       \kleeneOSYM^{#2#4}_{%
+            \IfNoValueTF{#1}{%
+                \IfNoValueTF{#3}{}{%
+                    \abs{#3}}% 
+                }%
+                {%
+                    1%
+                    \IfNoValueTF{#3}{}{%
+                        , \abs{#3}
+                    }%
+                }%
+        }%
+    }}
+    % \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{\mathcal{O}}\@kleeneObody}
+
+% \newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}}
+% \let\kleeneOless\kleeneObelow
 
     \newcommand*{\kleeneOuniq}{\kleeneO*}
     \let\ordNotations=\kleeneO
     \let\uniqOrdNotations=\kleeneOuniq
+    \newcommand*{\kleeneNum}[1]{{#1}_{\kleeneO}}
+    \newcommand*{\kleeneZero}{\kleeneNum{0}}
+    \newcommand*{\kleeneOne}{\kleeneNum{1}}
     \NewDocumentCommand{\kleeneless}{o}{<_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
     \let\kleenel=\kleeneless
     \NewDocumentCommand{\kleeneleq}{o}{\leq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
@@ -979,7 +1198,8 @@
     \newcommand*{\kleenePlus}{\mathbin{+_{\kleeneO}}}
     \newcommand*{\kleeneMul}{\cdot_{\kleeneO}}
     \newcommand*{\kleenehgt}[1]{\lVert #1\rVert_{\kleeneO}}
-    \let\hgtO=\kleenehgt
+    \let\kleeneHgt=\kleenehgt
+    % \let\hgtO=\kleenehgt
     \newcommand*{\kleenelim}[2]{{#1}_{[#2]}}
     \newcommand*{\kleenepred}[1]{{#1}^{-}}
 
@@ -1518,7 +1738,7 @@
     \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]{\mathop{\@recthy@useSYM}\left[#1\right]}
 % \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}}
@@ -1535,12 +1755,28 @@
     \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}}
+    \NewDocumentCommand{\REAop}{st+d()od()mm}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}#7}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}}
+    \NewDocumentCommand{\oneREAop}{st+d()od()m}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}}
     \let\iREAop=\oneREAop
-    \WithSuffix\def\reaop*#1{\oneREAop{#1}}
+
+    \newcommand*{\entersat}[1]{\mathbin{\searrow_{#1}}}
+    
+
+    % \newcommand*{\alphaREAop}[2][]{\mathcal{J}^{#2}_{#1}}
+    \let\recthy@rollback@threeTwo@threeOne@REA@computationssave=\recthy@rollback@threeTwo@threeOne@REA
+    \renewcommand*{\recthy@rollback@threeTwo@threeOne@REA}{
+        \let\reaop=\REAop
+        \let\alphaREAop=\REAop
+        \let\aREAop=\alphaREAop
+        \recthy@rollback@threeTwo@threeOne@REA@computationssave
+    }
+
+
+    
+
+    % \newcommand*{\oneREAop}[1]{J_{#1}}
+    % \let\iREAop=\oneREAop
+    % \WithSuffix\def\reaop*#1{\oneREAop{#1}}
     %converges
 
 \fi
-- 
cgit v1.2.3

