summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/rec-thy
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/rec-thy')
-rw-r--r--macros/latex/contrib/rec-thy/README9
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.pdfbin178442 -> 113103 bytes
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.sty330
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.tex50
4 files changed, 320 insertions, 69 deletions
diff --git a/macros/latex/contrib/rec-thy/README b/macros/latex/contrib/rec-thy/README
index a7c9a3aa04..72eaba54d6 100644
--- a/macros/latex/contrib/rec-thy/README
+++ b/macros/latex/contrib/rec-thy/README
@@ -27,4 +27,11 @@ Github URL: https://github.com/TruePath/Recursion-Theory-Latex-Package
11/14/2017 - v2.2 - Fixed \Tdeg so it works different on symbols and vars and added \Tdegof and \Tvarof. Added \subfunneq and \supfunneq.
12/31/2017 - v2.3 - Added proof cases helper. Also fixed the issue with \ncequiv in XeLaTeX
1/17/2018 - v2.4 - Added priority tree helpers. Should be more robust with respect to existing definitions of common commands
-2/14/2018 - v2.4.1 - Moved to using xparse to define the case macros and several other macros to allow nested brackets for optional arguments. Added the recf command and cleaned up some option processing. Also worked around the mathtools/unicode-math font bug described here: https://tex.stackexchange.com/questions/335164/incompatibility-with-mathtools-and-unicode-math-in-xelatex/335177 \ No newline at end of file
+2/14/2018 - v2.4.1 - Moved to using xparse to define the case macros and several other macros to allow nested brackets for optional arguments. Added the recf command and cleaned up some option processing. Also worked around the mathtools/unicode-math font bug described here: https://tex.stackexchange.com/questions/335164/incompatibility-with-mathtools-and-unicode-math-in-xelatex/335177
+11/29/2018 - v2.4.2 - Fixed horrible bugs introduced in last version and fixed many symbols to work even in pdflatex mode. Also things are compiling again.
+11/29/2018 - v2.4.3 - Rendered compatible with beamer by removing enumitem requirement if beamer is loaded.
+02/16/2019 - v3.0 - Added requirements environment for multiple requirements. Changed the \req and \require commands to take their optional argument after the first mandatory arguments as well as before. Added the commands \module and \modof. Added operator \xor. Fixed corner quotes. Added \leftofeq, \rightof, \rightofeq. Added \RE, \CE, \Ce, \Re and \Tincompat, \Tincomp, \Tcompat. Changed the way strings are symbolized and coded. Fixed commands to work even with unicode-math. Also added \require* inside \requirements. Added \nleftofeq, \nrightof, \nrightofeq, \nleftof. Commands \ancestor, \descendant, etc... and \reqof, \Astages and \Vstages now require the option suppPriorityTrees be passed to the class to use and should be viewed as depreciated. Fixed the options system so different symbols can be correctly passed to the class.
+02/17/2019 - v3.01 - Fixed \RE \CE \Re and \Ce for the various capitalized versions. Fixed weird bug with recfnl not printing. Removed \interior and \closure as not really appropriate commands for the package and having bugs. Also fixed package to indicate correct version.
+02/26/2019 - v3.1 - Fixed \wck to use roman capital CK.
+?? - v3.2 Removed \reaop, \alphaREAop, \aREAop in favor of using the single form \REAop. Removed \functo, \map and funcomp, \hgtO as useless synonyms and removed \KleeneOBelow and KleeneOLess as beyond what the package should define. Added package option compat31 to ensure package compatibility with version 3.1. An optional parentheses delimited argument specifying the base has been added to \REAop. Both \REAop and the pair \REA/\CEA have been updated to ignore order of optional arguments. The square brackets used to delimit the argument to the use command are now auto-sized. Added \pmapsto, \pmapsfrom, \kleeneZero, \kleeneNum, \entersat. Also Misc typesetting fixes.
+05/08/2020 - v3.3 Fixed/added tweak to overline so it looks correct. Also added real symbols so that \subfunneq and \supfunneq can be defined appropriately. Fixed incorrect use of tiny in math mode.
diff --git a/macros/latex/contrib/rec-thy/rec-thy.pdf b/macros/latex/contrib/rec-thy/rec-thy.pdf
index beb678f700..0f17d492a9 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.pdf
+++ b/macros/latex/contrib/rec-thy/rec-thy.pdf
Binary files differ
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}}
@@ -143,6 +149,84 @@
\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}
\else
@@ -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
diff --git a/macros/latex/contrib/rec-thy/rec-thy.tex b/macros/latex/contrib/rec-thy/rec-thy.tex
index 8fb6f3cbf2..d0ffdb6a5b 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.tex
+++ b/macros/latex/contrib/rec-thy/rec-thy.tex
@@ -1,10 +1,3 @@
-%
-% untitled
-%
-% Created by Peter M. Gerdes on 2010-10-14.
-% Copyright (c) 2010 . All rights reserved.
-%
-
\documentclass[leqno,11pt]{amsart}
\usepackage{amsmath}
% \RequirePackage{amsmath}
@@ -18,8 +11,10 @@
\usepackage{comment}
\usepackage{unicode-math}
\unimathsetup{math-style=TeX,bold-style=TeX,nabla=upright,partial=italic}
-\setmathfont{xits-math.otf}
-\setmathfont{xits-math.otf}[range={cal,bfcal},StylisticSet=1]
+ \setmainfont{XITS}
+ \setmathfont{XITS Math}
+ \setmathfont{XITS Math}[range={\mathscr,\mathbfscr}]
+ \setmathfont{XITS Math}[range={\mathcal,\mathbfcal},StylisticSet=1]
\usepackage{hyperxmp}
@@ -86,7 +81,7 @@
\title{The rec-thy Package}
\author{Peter M. Gerdes (gerdes@invariant.org)}
-\date{\today: Version 2.4}
+\date{05/20/2020: Version \recthyVersion}
\begin{document}
@@ -203,10 +198,10 @@ To disable these commands pass the option \verb=nocomputations=. \\ To specify
\verb=\REset(X){e}= & \( \REset(X){e} \) & \\[6pt]
\verb=\REset[s](X){e}= & \( \REset[s](X){e} \) & \\ \midrule
\verb=\iREAop{e}(\eset)= & \multirow{2}{*}{\( \iREAop{e}(\eset) \)} &\multirow{2}{*}{1-REA operator} \\
- \tab \verb=\reaop*{e}(\eset)= & & \\ \midrule
- \verb=\alphaREAop{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop{\alpha}(\eset) \)} &\multirow{2}{*}{\( \alpha \)-REA operator} \\[6pt]
- \tab \verb=\reaop{\alpha}(\eset)= & & \\[6pt]
- \verb=\alphaREAop[f]{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop[f]{\alpha}(\eset) \)} & \multirow{2}{*}{with particular witness to uniformity}\\[6pt]
+ \tab \verb=\oneREAop{e}(\eset)= & & \\ \midrule
+ % \verb=\alphaREAop{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop{\alpha}(\eset) \)} &\multirow{2}{*}{\( \alpha \)-REA operator} \\[6pt]
+ \verb=\REAop{e}{\alpha}= & \( \REAop{e}{\alpha} \) & \\[6pt]
+ % \verb=\alphaREAop[f]{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop[f]{\alpha}(\eset) \)} & \multirow{2}{*}{with particular witness to uniformity}\\[6pt]
\tab \verb=\reaop[f]{\alpha}(\eset)= & & \\
\bottomrule
\end{xtabular} \\
@@ -252,7 +247,7 @@ To disable these commands pass the option \verb=nodegrees=. \\
\verb=\TPlus_{i \in \omega} X_i= & \multirow{2}{*}{\( \TPlus_{i \in \omega} X_i \)} & \\
\tab \verb=\TJoin_{i \in \omega} X_i= & & \\ \midrule
% \verb=\ttSYM= & \( \ttSYM \) & \\ \midrule
- \verb=X \ttlneq Y= & \( X \ttlneq Y \) & Truth table reducibilities\\ \midrule
+ \verb=X \ttlneq Y= & \( X \ttlneq Y \) & Truth table reproducibilities\\ \midrule
\verb=X \ttleq Y= & \( X \ttleq Y \) & \\ \midrule
\verb=X \ttgneq Y= & \( X \ttgneq Y \) & \\ \midrule
\verb=X \ttgeq Y= & \( X \ttgeq Y \) & \\ \midrule
@@ -335,11 +330,17 @@ To disable these commands pass the option \verb=nomath=. \\
\verb=\rng= & \( \rng \) & Range\\ \midrule
\verb=f\restr{X}= & \( f\restr{X} \) & Restriction\\ \midrule
\verb=\ordpair{x}{y}= & \( \ordpair{x}{y} \)& Ordered Pair\\ \midrule
- \verb=f\map{X}{Y}= & \( f\map{X}{Y} \) & \multirow{2}{*}{Function specification} \\
- \verb=\functo{f}{X}{Y}= & \( \functo{f}{X}{Y} \) &\\ \midrule
- \verb=f \compfunc g= & \multirow{3}{*}{\( f \compose g \)} & \multirow{3}{*}{Function composition}\\
- \tab \verb=f \funcomp g= & &\\
+ % \verb=f\map{X}{Y}= & \( f\map{X}{Y} \) & \multirow{2}{*}{Function specification} \\
+ % \verb=\functo{f}{X}{Y}= & \( \functo{f}{X}{Y} \) &\\ \midrule
+ \verb=f \compfunc g= & \multirow{2}{*}{\( f \compose g \)} & \multirow{3}{*}{Function composition}\\
+ % \tab \verb=f \funcomp g= & &\\
\tab \verb=f \compose g= & &\\ \midrule
+ \verb=f: X \pmapsto Y= & \( f: X \pmapsto Y \) & partial function from \( X \) to \( Y \). \\ \midrule
+ \verb=f: Y \pmapsfrom X= & \( f: Y \pmapsfrom X \) & partial function from \( X \) to \( Y \). \\ \midrule
+ \verb=f: X \fpmapsto Y= & \( f: X \fpmapsto Y \) & finite partial function from \( X \) to \( Y \). \\ \midrule
+ \verb=f: Y \fpmapsfrom X= & \( f: Y \fpmapsfrom X \) & finite partial function from \( X \) to \( Y \). \\ \midrule
+ \verb=\ParFuncs{X}{Y}= & \( \ParFuncs{X}{Y} \) & set of partial functions from \( X \) to \( Y \). \\ \midrule
+ \verb=\FinParFuncs{X}{Y}= & \( \FinParFuncs{X}{Y} \) & set of finite partial functions from \( X \) to \( Y \). \\ \midrule
\verb=\( \ensuretext{blah} \)= & \multirow{2}{*}{\( \ensuretext{blah} \)}& \multirow{2}{*}{Types argument in text mode} \\
\tab \verb=\ensuretext{blah}= & & \\
\bottomrule
@@ -488,7 +489,9 @@ To disable these commands pass the option \verb=nosubfuns=.\\
\verb=f \nsubfun g= & \( f \nsubfun g \) & \\ \midrule
\verb=f \nsupfun g= & \( f \nsupfun g \) & \\ \midrule
\verb=f \subfuneq g= & \( f \subfuneq g \) & \\ \midrule
+ \verb=f \subfunneq g= & \( f \subfunneq g \) & \\ \midrule
\verb=f \supfuneq g= & \( f \supfuneq g \) & \\ \midrule
+ \verb=f \supfunneq g= & \( f \supfunneq g \) & \\ \midrule
\verb=f \nsubfuneq g= & \( f \nsubfuneq g \) & \\ \midrule
\verb=f \nsupfuneq g= & \( f \nsupfuneq g \) & \\ \midrule
\bottomrule
@@ -549,8 +552,8 @@ To disable these commands pass the option \verb=noordinalnotations=.\\
\verb=\alpha \kleeneMul \beta= & \( \alpha \kleeneMul \beta \) & Effective multiplication of notations \\ \midrule
\verb=\kleenelim{\lambda}{n}= & \( \kleenelim{\lambda}{n} \) & The \( n \)-th element in effective limit defining notation \( \lambda \)\\ \midrule
\verb=\kleenepred{\alpha}= & \( \kleenepred{\alpha} \) & Predecessor of \( \alpha \) if defined \\ \midrule
- \verb=\kleenehgt{R}= & \multirow{2}{*}{\( \kleenehgt{R} \)} & Heigh of computable relation \( R \) \\
-\tab \verb=\hgtO{R}= & & \\
+ \verb=\kleenehgt{R}= & \( \kleenehgt{R} \) & Height of computable relation \( R \) \\
+% \tab \verb=\hgtO{R}= & & \\
\bottomrule
\end{tabular}
@@ -678,7 +681,12 @@ Finally to enable the mrref helper macros pass the option \verb=mrref=.\\ These
\section{Release Notes}
+
+% TESTING: \verb=\fpmapsto=, \verb=\fpmapsfrom=, \verb=\ParFuncs{Y}{X}= and \verb=\FinParFuncs{Y}{X}=
\begin{itemize}
+ \item[3.3] - Fixed/added tweak to overline so it looks correct. Also added real symbols so that \verb=\subfunneq= and \verb=\supfunneq= can be defined appropriately. Added \verb=\floor= and \verb=\ceil=. Note these aren't yet shown off in package doc. Fixed incorrect use of tiny in math mode.
+ \item[3.2] - Removed \verb=\reaop=, \verb=\alphaREAop=, \verb=\aREAop= in favor of using the single form \verb=\REAop=. Removed \verb=\functo=, \verb=\map= and \verb=funcomp=, \verb=\hgtO= as useless synonyms and removed \verb=\KleeneOBelow= and \verb=KleeneOLess= as beyond what the package should define. Added package option compat31 to ensure package compatibility with version 3.1. An optional parentheses delimited argument specifying the base has been added to \verb=\REAop=. Both \verb=\REAop= and the pair \verb=\REA=/\verb=\CEA= have been updated to ignore order of optional arguments. The square brackets used to delimit the argument to the use command are now auto-sized. Added \verb=\pmapsto=, \verb=\pmapsfrom=, \verb=\kleeneZero=, \verb=\kleeneNum=, \verb=\entersat=. Also Misc typesetting fixes.
+ \item[3.1] 02/26/2019 - Fixed \verb=\wck= to be \( \wck \), i.e., have capitalized roman CK.
\item[3.01] 02/17/2019 - Fixed \verb=\RE= \verb=\CE= \verb=\Re= and \verb=\Ce= for the various capitalized versions. Fixed weird bug with \verb=\recfnl= no longer working based on let. Removed \verb=\interior= and \\verb=\closure= as not really appropriate commands for the package and having bugs. Also fixed package to have correct version.
\item[3.0] 02/16/2019 - Added requirements environment for multiple requirements. Changed the \verb=\req= and \verb=\require= commands to take their optional argument after the first mandatory arguments as well as before. Added the commands \verb=\module= and \verb=\modof= and \verb=\xor=. Improved the corner quotes. Added \verb=\leftofeq=, \verb=\rightof=, \verb=\rightofeq=. Added \verb=\RE=, \verb=\CE=, \verb=\Ce=, \verb=\Re= and \verb=\Tincompat=, \verb=\Tincomp=, \verb=\Tcompat=. Changed the way strings are symbolized and coded. Fixed suffix commands to work with unicode-math. Also added \verb=\require*= inside \verb=\requirements=. Added \verb=\nleftofeq=, \verb=\nrightof=, \verb=\nrightofeq=, \verb=\nleftof=. The commands \verb=\ancestor=, \verb=\descendant= etc... \verb=\reqof=, \verb=\Astages= and \verb=\Vstages=now require the option suppPriorityTrees be passed to the class to use and should be viewed as depreciated. Fixed the options system so different symbols can be correctly passed to the class. Changed the way \verb=\recf= works to comply with the usual syntax.
\item[2.4.3] 11/29/2018 - Rendered compatible with beamer by removing enumitem requirement if beamer is loaded.