texlive[74983] Master/texmf-dist: rec-thy (19apr25)
commits+karl at tug.org
commits+karl at tug.org
Sat Apr 19 22:12:57 CEST 2025
Revision: 74983
https://tug.org/svn/texlive?view=revision&revision=74983
Author: karl
Date: 2025-04-19 22:12:57 +0200 (Sat, 19 Apr 2025)
Log Message:
-----------
rec-thy (19apr25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/rec-thy/README
trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.pdf
trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rec-thy/README 2025-04-19 20:12:46 UTC (rev 74982)
+++ trunk/Master/texmf-dist/doc/latex/rec-thy/README 2025-04-19 20:12:57 UTC (rev 74983)
@@ -45,4 +45,5 @@
v3.8.2 Removed option to put the set at the end of an \REset operation to avoid capturing later paren arguments, e.g. \REset{i}(A) no longer works to avoid confusion with \REset{i}(x).
v3.8.3 Added bpfuncs. Changed default for code to use double angle brackets. Improved the indentation for the cases enviornment.
-03/29/2024 - v 4.0 Major release and refactor with many breaking changes. See the pdf documenatation for details.
\ No newline at end of file
+03/29/2024 - v 4.0 Major release and refactor with many breaking changes. See the pdf documenatation for details.
+2025/04/19 - v 4.5 See pdf documentation for detailed changes.
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex 2025-04-19 20:12:46 UTC (rev 74982)
+++ trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex 2025-04-19 20:12:57 UTC (rev 74983)
@@ -119,13 +119,16 @@
Comments, patches, suggestions etc.. are all welcome. This project is hosted on github at \href{https://github.com/TruePath/Recursion-Theory-Latex-Package}{https://github.com/TruePath/Recursion-Theory-Latex-Package}.
\section{Usage}
-Include the package in your document by placing \verb=\usepackage{rec-thy}= into your preamble after placing rec-thy.sty somewhere \TeX{ } can find it. The commands in this package have been divided into related groups. The commands in a given section can be disabled by passing the appropriate package option. For instance to disable the commands in the general mathematics section and the delimiters section you would include the following in your preamble \verb=\usepackage[nomath,nodelim]{rec-thy}=. The commands in each subsection along with their results are listed below and the options to disable the commands in each grouping or modify their behavior are listed in that subsection. Aliases and variants of a command are listed below the initial version of a command and aliases are indented.
+Include the package in your document by placing \verb=\usepackage{rec-thy}= into your preamble after placing rec-thy.sty somewhere \TeX{ } can find it. The commands in this package have been divided into related groups. The commands in a given section can be disabled by passing the appropriate package option. For instance to disable the commands in the general mathematics section and the delimiters section you would include the following in your preamble \verb=\usepackage[nomath,nodelim]{rec-thy}=.
-Significant use is made in this package of optional arguments delimited either by square brackets or parenthesis. Users of the package should take care to wrap arguments that may themselves include brackets or parenthesis in braces. For example \verb=\REset(\REset(X){e}){i}= should be fixed to \verb=\REset({\REset(X){e}}){i}=.
+\subsection{Versioning}
-\section{Alternate Symbols}
-While the symbols used by default in the package are suggested for adoption to achieve greater consistency users may wish to specify their own symbols and options have been provided to enable this. The following parameters may be specified.
+Over time the package may evolve in incompatible ways to improve usability. To guarantee that your documents continue to produce the same output \textbf{always} include a package option setting the version, e.g., \verb=\usepackage[version=4.0]{rec-thy}=. You can always find the version of the package you are using by either looking in your log files during compilation or opening up this documentation and seeing the version number displayed.
+
+\subsection{Alternate Symbols}
+While the symbols used by default in the package are suggested for adoption to achieve greater consistency users may wish to specify their own symbols. The following package options enable such changes.
+
\makeatletter
\let\useSYMdefault=\@recthy at useSYM@default
\makeatother
@@ -142,7 +145,7 @@
\item[lstrdelim,rstrdelim] Left and right delimiters for \verb=\str=
\item[lcodedelim,rcodedelim] Left and right delimiters for \verb=\code=
\item[lpairdelim,rpairlim,pairsup] Left and right delimiters for \verb=\pair= and superscript.
- \item[altcompat] Uses the \verb=\succprec= and \verb=\nsuccprec= commands for \verb=\compat= and \verb=\incompat= respectively.
+ \item[midincompat] No argument is taken. Chooses to use the vertical bar for the incompatibility symbol.
\end{itemize}
@@ -158,9 +161,9 @@
\section{Commands}
A few general conventions are usually followed in the commands. Whenever an operator can be used as a binary operator (as in \( X \union Y \)) and as an operation on some collection \( \Union_{i \in \omega} X_i \) the binary operator will begin with a lowercase letter \verb=\union= and the operation on the collection will begin with a capital letter \verb=\Union=. If the first letter is already capitalized then the second letter is used instead.
-Objects that have a natural stagewise approximation generally admit an optional argument in brackets to specify a stage. For instance \( \verb=\REset[s]{e}= \) yields \( \REset[s]{e} \). An optional argument in parenthesis is used for relativization. For instance \( \verb=\REset(X){e}= \) produces \( \REset(X){e} \). For the formula classes square brackets are used to indicate an oracle to be placed in the superscript, e.g., \( \verb=\pizn[X]{2}= \) yields \( \pizn[X]{2} \) while parenthesis place the value in parenthesises after the symbol as in \( \pizn(X){2} \). To give boldcase versions of formulas classes a star should be used immediately following the command as in \( \pizn*(X){2} \).
+Objects that have a natural stagewise approximation generally admit an optional argument in brackets to specify a stage. For instance \( \verb=\REset[s]{e}= \) yields \( \REset[s]{e} \). An optional argument in parenthesis is used for relativization. For instance \( \verb=\REset(X){e}= \) produces \( \REset(X){e} \). For the formula classes square brackets are used to indicate an oracle to be placed in the superscript, e.g., \( \verb=\pizn[X]{2}= \) yields \( \pizn[X]{2} \) while parenthesis place the value in parenthesises after the symbol as in \( \pizn(X){2} \). To give boldcase versions of formulas classes a star should be used immediately following the command as in \( \pizn*(X){2} \). Users of the package should take care to wrap arguments that may themselves include brackets or parenthesis in braces. For example \verb=\REset(\REset(X){e}){i}= should be fixed to \verb=\REset({\REset(X){e}}){i}=.
-Unless indicated otherwise all macros are to be used inside math mode. Indented commands indicate an alias for the command on the line above.
+Unless indicated otherwise all macros are to be used inside math mode.
\subsection{Priority Trees}
@@ -370,6 +373,7 @@
\verb=\iffdef= & \( \iffdef \) & Definitional equivalence\\ \midrule
\verb=\aut= & \( \aut \) & Automorphisms of some structure\\ \midrule
\verb=\Ord= & \( \Ord \) & Set of ordinals\\\midrule
+ % \verb=\id= & \( \id \) & identity function \\ \midrule
\verb=\abs{x}= & \( \abs{x} \) & Absolute value\\ \midrule
\verb=\dom= & \( \dom \) & Domain \\ \midrule
\verb=\rng= & \( \rng \) & Range\\ \midrule
@@ -589,11 +593,12 @@
\verb=\kleeneO= & \( \kleeneO \) & Set of ordinal notations \\
\tab \verb=\kleeneO-= & \( \kleeneO- \) & Set of limit notations \\
\tab \verb=\kleeneO+= & \( \kleeneO+ \) & Set of successor notations \\
- \tab \verb=\kleeneO*= or \verb=\Ouniq= & \( \kleeneO* \) & Canonical unique set of ordinal notations \\
+ \tab \verb=\kleeneO1= & \( \kleeneO1 \) & Canonical unique set of ordinal notations \\
+ \tab \verb=\kleeneO*= & \( \kleeneO* \) & Set of apparent ordinal notations, i.e., includes non-standard notations \\
% \tab \verb=\Ouniq= & & Alternate command \\
\tab \verb=\kleeneO(X)= & \( \kleeneO(X) \) & Relativized ordinal notations \\
\tab \verb=\kleeneO[\alpha]= & \( \kleeneO[\alpha] \) & Ordinal notations for ordinals \( < \abs{\alpha} \)\\
- \tab \verb=\kleeneO*(X)[\alpha]= & \( \kleeneO*(X)[\alpha] \) & Multiple options work together \\ \midrule
+ \tab \verb=\kleeneO1(X)[\alpha]= & \( \kleeneO1(X)[\alpha] \) & Multiple options work together \\ \midrule
\verb=\alpha \Oless \beta= & \( \alpha \Oless \beta \) & less than on the ordering on notations \\
\tab \verb=\alpha \Oleq \beta= & \( \alpha \Oleq \beta \) & \\ \midrule
\tab \verb=\alpha \Ogtr \beta= & \( \alpha \Ogtr \beta \) & \\
@@ -812,6 +817,7 @@
% TESTING: \verb=\fpmapsto=, \verb=\fpmapsfrom=, \verb=\ParFuncs{Y}{X}= and \verb=\FinParFuncs{Y}{X}=
\begin{itemize}
+ \item[4.5] 2025/04/19 - Added versioning interface. Finally fixed references to cases. At least largely. Fixed \verb=\supfunneq= to face the right direction. \textbf{Breaking} change to \verb=\kleeneO= in arguments. Added \verb=\leftofneq=, and \verb=\rightofneq= improved \verb=\succprec=, \verb=\precsucc= and made them the default compatibility symbols, removed old not hack for unicode-math. Supplemented \verb=\gg= \verb=\ll= with \verb=\ggneq= \verb=\ggeq= and like. Added relations \verb=\KBless= \verb=\KBgtr= and so on. Improved command \verb=\wck= to take a relativization argument in parens as well as brackets for greater uniformity. Added generalized low/high/intermediate degree class symbols \verb=\GHn= \verb=\GLn= \verb=\GIn= and improved interaction between cleverref and the steps command. Added an optional argument to the \verb=\hgt= command to specify the ordering. Improved spacing for \verb=\deltain{1}=, fixed \verb=\wck[g]=. Added operator \verb=\id= Changed the size of the meet and join operators to distinguish them from and and or. Improved \verb=recfnl= to work without an oracle argument.
\item[4.0] Stripped out non-working compatibility code and removed previously depreciated features. Removed mref helper. Removed the ball command. Removed undocumented hyphenation. Removed the recursive/computably terminology commands. Removed lots of unnecessary syntax commands and reworked the code to be simpler. Added option not to load rsfs. Added the commands \verb=\succprec=, \verb=\precsucc=, \verb=\csuccprec=, \verb=\cprecsucc= for stacked succ/prec symbols and added the option altcompat to use these instead of the standard mid and not mid compatibility symbols. Added the \verb=\Searrow= symbol from MnSymbol and changed option from nodelim to nosymb.
%TODO handle the double definition of the degree structures stuff and add strcE/strcL doc
Changed commands for \verb=\StrcR= and \verb=\StrcD= to be \verb=\strcR= and \verb=\strcD= for consistency and added \verb=\strcRa= and \verb=\strcDa= as synonyms for \verb=\Adegrees= and \verb=\AREAdegrees=. Added \verb=\Adegrees= and \verb=\AREAdegrees= and the relations for arithmetic degrees. Merged the degree symbols into the degrees option and depreciated some alternate spellings. Added \verb=\TreeMul=, \verb=\TreeMod=, \verb=\TreeExt=, \verb=\wforces=, \verb=\HYP=, depreciated the computable classes of sentences and simplified the standard ones. Fixed \verb=\nconv= to be the symbol from MnSymbol if the nosymb option isn't passed, fixed \verb=\concat= to not be so far above the line. Adjusted spacing for \verb=\compat=, added abbreviations. Complete renaming and of the commands for ordinal notations and extra options to indicate limit, successor and unique sets of notations. Added \verb=\Ofunc= as the effective limit for a notation. Fixed errors in the pfcases environment and eliminated some old compatibility code that wasn't being used by anyone. Added \verb=\maps= helper for normal math stuff. Fixed BeamerRequirements. Added the \verb=\bpfuncs= command and \verb=\cbstrs=. Removed dependency on mathtools for compatibility with asl.cls
Modified: trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty 2025-04-19 20:12:46 UTC (rev 74982)
+++ trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty 2025-04-19 20:12:57 UTC (rev 74983)
@@ -14,10 +14,10 @@
\RequirePackage{pict2e,picture}
\RequirePackage{xparse}
% \RequirePackage{amsmath} required below if not already loaded and we aren't using asl.cls
-\def\recthyVersion{4.0}
+\def\recthyVersion{4.5}
\ProvidesExplPackage
{rec-thy}
- {2024/03/29}
+ {2025/04/19}
{\recthyVersion}
{Provides commands for writing up recursion theory papers}
@@ -57,7 +57,6 @@
% \ltx at ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
\ltx at ifpackageloaded{unicode-math}{
\def\@recthy at tpathSYM{\mathbb{f}}
- \Umathchardef\@recthy at xnot="3 \symoperators "0338
}{
\ltx at ifpackageloaded{bbm}{\def\@recthy at tpathSYM{\mathbbm{f}}}{\mathbf{f}}
}
@@ -119,7 +118,7 @@
\newif\ifrecthy at nodoubleangles \recthy at nodoubleanglesfalse
\newif\ifrecthy at stepsenv \recthy at stepsenvfalse
\newif\ifrecthy at shortO \recthy at shortOtrue
-\newif\ifrecthy at midincompat \recthy at midincompattrue
+\newif\ifrecthy at midincompat \recthy at midincompatfalse
\newif\ifrecthy at norsfs \recthy at norsfsfalse
\newif\ifrecthy at nobbm \recthy at nobbmfalse
@@ -149,7 +148,7 @@
\DeclareOptionX{nodoubleangles}{\recthy at nodoubleanglestrue}
\DeclareOptionX{steps}{\recthy at stepsenvtrue}
\DeclareOptionX{noshortO}{\recthy at shortOfalse}
-\DeclareOptionX{altcompat}{\recthy at midincompattrue}
+\DeclareOptionX{midcompat}{\recthy at midincompattrue}
\DeclareOptionX{norsfs}{\recthy at norsfstrue}
\DeclareOptionX{nobbm}{\recthy at nobbmtrue}
@@ -230,9 +229,75 @@
\DeclareOptionX{lpairdelim}[@recthy at llangle]{\letcs{\@recthy at lpairdelim}{#1}}
\DeclareOptionX{rpairdelim}[@recthy at rrangle]{\letcs{\@recthy at rpairdelim}{#1}}
+\ExplSyntaxOn
+% Declare integer variables for version components
+\int_new:N \l_version_major_int
+\int_new:N \l_version_minor_int
+% Declare integer variables for version components...default to bigger than we will every use
+\int_set:Nn \l_version_major_int { 9999 }
+\int_set:Nn \l_version_minor_int { 9999 }
+\newif\ifrecthy at versiongreater
+\cs_new_protected:Npn \ifRecthyVersionGreater #1 #2 {%
+ % First compare the major version:
+ \ifnum \int_use:N \l_version_major_int > #1\relax
+ \recthy at versiongreatertrue
+ \else
+ % If major versions are equal, compare the minor version:
+ \ifnum \int_use:N \l_version_major_int = #1\relax
+ \ifnum \int_use:N \l_version_minor_int > #2\relax
+ \recthy at versiongreatertrue
+ \else
+ \recthy at versiongreaterfalse
+ \fi
+ \else
+ \recthy at versiongreaterfalse
+ \fi
+ \fi
+ % Now expand to the proper conditional branch:
+ \ifrecthy at versiongreater
+}
+% Define the \ifVersionGreater conditional BEFORE \ProcessOptionsX
+\cs_new_protected:Npn \ifVersionGreater #1 #2 {
+ \int_compare:nNnTF {\l_version_major_int} > {#1} {
+ \prg_return_true:
+ } {
+ \int_compare:nNnTF {\l_version_major_int} = {#1} &&
+ {\l_version_minor_int} > {#2} {
+ \prg_return_true:
+ } {
+ \prg_return_false:
+ }
+ }
+}
+
+% Function to process the version number
+\cs_new_protected:Nn \version_process:n
+ {
+ \str_if_in:nnTF {#1}{.}
+ {
+ % Split the argument at the period into a sequence
+ \seq_set_split:Nnn \l_tmpa_seq {.} {#1}
+ % Set the major version to the first item
+ \int_set:Nn \l_version_major_int { \seq_item:Nn \l_tmpa_seq {1} }
+ % Set the minor version to the second item
+ \int_set:Nn \l_version_minor_int { \seq_item:Nn \l_tmpa_seq {2} }
+ }
+ {
+ % No period: set the major version and make minor version 0
+ \int_set:Nn \l_version_major_int {#1}
+ \int_zero:N \l_version_minor_int
+ }
+ }
+% Declare the package option using DeclareOptionX
+\DeclareOptionX{version}{\version_process:n{#1}}
+
+
+\ExplSyntaxOff
+
+
% \AtBeginDocument{\@ifundefined{hyperref}{\newcommand*{\texorpdfstring}[2]{#1}}{}}
% \ProcessOptions*
@@ -360,8 +425,8 @@
\newcommand{\succprec at recthy}{\mathrel{\mathpalette\succ at prec@recthy{\succ\prec}}}
\newcommand{\precsucc at recthy}{\mathrel{\mathpalette\succ at prec@recthy{\prec\succ}}}
- \newcommand{\nsuccprec at recthy}{\ltx at ifpackageloaded{unicode-math}{\succprec at recthy\!\@recthy at xnot}{\not\succprec at recthy}}
- \newcommand{\nprecsucc at recthy}{\ltx at ifpackageloaded{unicode-math}{\precsucc at recthy\!\@recthy at xnot}{\not\precsucc at recthy}}
+ \newcommand{\nsuccprec at recthy}{\ltx at ifpackageloaded{unicode-math}{\mathrel{\notaccent{\succprec at recthy}}}{\not\succprec at recthy}}
+ \newcommand{\nprecsucc at recthy}{\ltx at ifpackageloaded{unicode-math}{\mathrel{\notaccent{\precsucc at recthy}}}{\not\precsucc at recthy}}
\newcommand{\succ at prec@recthy}[2]{\succ@@prec at recthy#1#2}
\newcommand{\succ@@prec at recthy}[3]{%
@@ -371,17 +436,20 @@
}%
}
- \def\defaultincompatsymb at recthy{\mathrel{\mid}}
- \def\defaulcompatSymb at recthy{\mathrel{\,\not|\,}}
+ \def\defaultincompatsymb at recthy{\mathrel{\bot}}
+ \def\midincompatsymb at recthy{\mathrel{\mid}}
+ \def\defaulcompatsymb at recthy{\mathrel{\,\not|\,}}
+ \def\compat at succprec@recthy{\mathrel{\succprec at recthy}}
\let\ncompatsymb at recthy=\nsuccprec at recthy
\ifrecthy at midincompat
\@packinfo{Using mid as incompat symbol}
- \let\compatsymb at recthy=\defaulcompatSymb at recthy
- \let\incompatsymb at recthy=\defaultincompatsymb at recthy
+ \let\compatsymb at recthy=\defaulcompatsymb at recthy
+ \let\incompatsymb at recthy=\midincompatsymb at recthy
\else
\@packinfo{Using precc over succ as compat symbol}
\let\compatsymb at recthy=\succprec at recthy
- \let\incompatsymb at recthy=\nsuccprec at recthy
+ \let\incompatsymb at recthy=\defaultincompatsymb at recthy
+ % \let\incompatsymb at recthy=\nsuccprec at recthy
\fi
@@ -389,8 +457,8 @@
-\NewDocumentCommand{\incompat at recthy}{o}{\incompatsymb at recthy\IfValueTF{#1}{_{#1}}{}}
-\NewDocumentCommand{\compat at recthy}{o}{{\compatsymb at recthy\IfValueTF{#1}{_{#1}}{}}}
+\NewDocumentCommand{\incompat at recthy}{o}{\mathrel{\incompatsymb at recthy\IfValueTF{#1}{_{#1}}{}}}
+\NewDocumentCommand{\compat at recthy}{o}{\mathrel{\compatsymb at recthy\IfValueTF{#1}{_{#1}}{}}}
\ifrecthy at nostrings
@@ -454,8 +522,10 @@
\providecommand{\tpath}[1][]{\ifthenelse{\isempty{#1}}{\@recthy at tpathSYM}{\@recthy at tpathSYM_{#1}}}
\providecommand{\leftof}{\mathbin{<_L}}
\providecommand{\leftofeq}{\mathbin{\leq_L}}
+ \providecommand{\leftofneq}{\mathbin{\lneq_L}}
\providecommand{\rightof}{\mathbin{>_L}}
\providecommand{\rightofeq}{\mathbin{\geq_L}}
+ \providecommand{\rightofneq}{\mathbin{\gneq_L}}
\providecommand{\nleftof}{\mathbin{\nless_L}}
\providecommand{\nleftofeq}{\mathbin{\nleq_L}}
\providecommand{\nrightof}{\mathbin{\ngtr_L}}
@@ -474,27 +544,31 @@
\@packinfo{Loading Proof Cases Helper.}
\RequirePackage{enumitem}
- \ltx at 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}
- }{}
+ \AtBeginDocument{
+ \ltx at 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 at casefont{Case}},
+ % ref={\thepfcasesnonumi},
align=left,
left=0pt .. 1.5em,
- itemindent=*
+ itemindent=*,
+ % after=\vspace{\baselineskip}
}
\setlist[pfcasesnonum,1]{
before=\def\pfcasecounter at pmg{pfcasesnonumi},
@@ -509,7 +583,8 @@
\setlist[pfcasesnumbered]{
align=left,
left=0pt .. 1.5em,
- itemindent=*
+ itemindent=*,
+ % after=\vspace{\baselineskip}
}
% \setlist[pfcasesnumbered]{
% align=left,
@@ -520,7 +595,7 @@
% labelwidth=0pt
% }
\setlist[pfcasesnumbered,1]{
- before=\def\pfcasecounter at pmg{pfcasesnumberedi},
+ before=\def\pfcasecounter at pmg{pfcasesnumberedi},
label={{\pmg at casefont{Case}}~\arabic*},
ref={\arabic*},
}
@@ -542,10 +617,27 @@
\ProvideDocumentCommand{\case}{r[]}{
\def\thiscase{~##1}%
\item~##1\textbf{:} %
+ \protected at edef\@currentlabel{##1}%
\ltx at ifpackageloaded{cleveref}{%
- \cref at constructprefix{pfcases}{\cref at result}%
- \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][][\cref at result]##1}}{} \protected at edef\@currentlabel{##1}\ignorespaces}
- \begin{pfcasesnonum}\def\@recthy at cases@labelindent{1em}\ignorespaces}{\end{pfcasesnonum}\ignorespacesafterend}
+ \def\label####1{\cref at old@label{####1} %Have to override cleverref's label...don't support the optional argtype
+ \@bsphack%
+ \cref at constructprefix{pfcases}{\@recthy at cref@result}%
+ \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][\@recthy at cref@result][] {##1}}
+ % \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][2][] {foo}}
+ \edef\@tempa{{page}{\the\c at page}}%
+ \setcounter{page}{1}%
+ \edef\@tempb{\thepage}%
+ \expandafter\setcounter\@tempa%
+ \cref at constructprefix{page}{\cref at result}%
+ \protected at write\@auxout{}%
+ {\string\newlabel{####1 at cref}{{\cref at currentlabel}%
+ {[\@tempb][\arabic{page}][\cref at result]\thepage}{}{}{}}}%
+ \@esphack%
+ }%
+ }{}%
+ \ignorespaces}
+ \begin{pfcasesnonum}\def\@recthy at cases@labelindent{1em}\ignorespaces}%
+ {\end{pfcasesnonum}\ignorespacesafterend}
\newenvironment{pfcases}{
\ProvideDocumentCommand{\case}{o}{
@@ -554,9 +646,7 @@
}{
\def\thiscase{~##1}\item~##1\textbf{:} \allowbreak%\linebreak[1]%
}
- \ltx at ifpackageloaded{cleveref}{%
- \cref at constructprefix{\pfcasecounter at pmg}{\cref at result}%
- \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][][\cref at result]\csname the\pfcasecounter at pmg \endcsname}}{}\ignorespaces}
+ \ignorespaces}
\begin{pfcasesnumbered}[labelindent=\@recthy at cases@labelindent]\def\@recthy at cases@labelindent{-1em}\ignorespaces}{\end{pfcasesnumbered}\ignorespacesafterend}
\fi
@@ -563,9 +653,9 @@
\ifrecthy at nosubfun
- \@packinfo{Not loading subfun defs.}
+ \@packinfo{Not loading relation defs.}
\else
- \@packinfo{Loading subfun defs.}
+ \@packinfo{Loading relation defs.}
%DOCUMENT ME
\newcommand{\@pnrelbar}{%
\linethickness{\dimen2}%
@@ -608,7 +698,7 @@
\dimen2=\f at size\dimexpr.04pt\relax
\oalign{%
\noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
- $\m at th\prec$\cr
+ $\m at th\succ$\cr
\noalign{\kern-.5\dimen2}
\hidewidth\@snrelbar\hidewidth\cr
}%
@@ -625,6 +715,79 @@
\NewDocumentCommand{\supfunneq}{o}{\@succneq\IfNoValueTF{#1}{}{_{#1}}}
\NewDocumentCommand{\nsubfuneq}{o}{\npreceq\IfNoValueTF{#1}{}{_{#1}}}
\NewDocumentCommand{\nsupfuneq}{o}{\nsucceq\IfNoValueTF{#1}{}{_{#1}}}
+
+ \newcommand{\@nggrelbar}{%
+ \linethickness{\dimen2}%
+ \sbox\z@{$\m at th\gg$}%
+ \newdimen\pmg at width@
+ \pmg at width@=0.8\wd\z@\relax
+ \begin{picture}(\pmg at width@,.4ex)
+ \linethickness{0.6pt}
+ \roundcap
+ \put(0,.2ex){\line(1,0){\pmg at width@}}
+ \put(\dimexpr 0.5\pmg at width@-.2ex\relax,-.1ex){\line(1,1){.6ex}}
+ \end{picture}%
+ }
+
+ \newcommand{\@ggrelbar}{%
+ \linethickness{\dimen2}%
+ \sbox\z@{$\m at th\gg$}%
+ \newdimen\pmg at width@
+ \pmg at width@=0.8\wd\z@\relax
+ \begin{picture}(\pmg at width@,.4ex)
+ \linethickness{0.6pt}
+ \roundcap
+ \put(0,.2ex){\line(1,0){\pmg at width@}}
+ \end{picture}%
+ }
+
+
+
+
+ \providecommand{\ggneq}{\mathrel{\vcenter{\hbox{\text{\gg at neq}}}}}
+ \newcommand{\gg at neq}{%
+ \dimen2=\f at size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+ $\m at th\gg$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@nggrelbar\hidewidth\cr
+ }%
+ }
+ \providecommand{\llneq}{\mathrel{\vcenter{\hbox{\text{\ll at neq}}}}}
+ \newcommand{\ll at neq}{%
+ \dimen2=\f at size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+ $\m at th\ll$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@nggrelbar\hidewidth\cr
+ }%
+ }
+ \providecommand{\ggeq}{\mathrel{\vcenter{\hbox{\text{\gg at eq}}}}}
+ \newcommand{\gg at eq}{%
+ \dimen2=\f at size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.1ex-.5\dimen2\relax}
+ $\m at th\gg$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@ggrelbar\hidewidth\cr
+ }%
+ }
+ \providecommand{\lleq}{\mathrel{\vcenter{\hbox{\text{\ll at eq}}}}}
+ \newcommand{\ll at eq}{%
+ \dimen2=\f at size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.1ex-.5\dimen2\relax}
+ $\m at th\ll$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@ggrelbar\hidewidth\cr
+ }%
+ }
+
+ \newcommand\nll{\mathrel{\not\ll}}
+\newcommand\ngg{\mathrel{\not\gg}}
+
\fi
@@ -1001,7 +1164,7 @@
-\NewDocumentCommand{\REA}{d()o}{\ensuremath{\IfValueTF{#2}{#2 \@recthy at mhyphen}{}\text{REA}\IfValueTF{#1}{(#1)}{}}}
+\NewDocumentCommand{\REA}{d()o}{\ensuremath{\IfValueTF{#2}{#2 \@recthy at mhyphen}{}\text{REA}\IfValueTF{#1}{(#1)}{}} }
\NewDocumentCommand{\CEA}{d()o}{\ensuremath{\IfValueTF{#2}{#2 \@recthy at mhyphen}{}\text{CEA}\IfValueTF{#1}{(#1)}{}}}
@@ -1156,7 +1319,7 @@
\NewDocumentCommand{\PiZeroN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Pi}}{\Pi}}^{0\IfValueT{#2}{, #2}}_{#4}\IfValueT{#3}{\!\left(#3\right)}}
\NewDocumentCommand{\SigmaZeroN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Sigma}}{\Sigma}}^{0\IfValueT{#2}{, #2}}_{#4}\IfValueT{#3}{\!\left(#3\right)}}
- \NewDocumentCommand{\DeltaOneN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Delta}}{\Delta}}^{1\IfValueT{#2}{, #2}}_{#4}\IfValueT{#3}{\!\left(#3\right)}}
+ \NewDocumentCommand{\DeltaOneN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Delta}}{\Delta}}^{1\IfValueT{#2}{, #2}}_{\ifnum1=0#4\relax\!\fi#4}\IfValueT{#3}{\!\left(#3\right)}}
\NewDocumentCommand{\PiOneN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Pi}}{\Pi}}^{1\IfValueT{#2}{, #2}}_{#4}\IfValueT{#3}{\!\left(#3\right)}}
\NewDocumentCommand{\SigmaOneN}{sod()m}{{\IfBooleanTF{#1}{\symbf{\Sigma}}{\Sigma}}^{1\IfValueT{#2}{, #2}}_{#4}\IfValueT{#3}{\!\left(#3\right)}}
@@ -1165,7 +1328,7 @@
\@packinfo{No syntax abbreviations loading.}
\let\pizn=\PiZeroN
\let\deltazn=\DeltaZeroN
- \let\sigmazn=\SigmaOneN
+ \let\sigmazn=\SigmaZeroN
\let\piin=\PiOneN
\let\deltain=\DeltaOneN
\let\sigmain=\SigmaOneN
@@ -1233,11 +1396,19 @@
\@packinfo{Trees loading.}
\newcommand*{\CBderiv}[2][1]{#2^{\langle#1\rangle}}
\newcommand*{\pruneTree}[1]{\CBderiv[\infty]{#1}}
- \newcommand*{\hgt}[1]{\lVert #1 \rVert}
+ \NewDocumentCommand{\hgt}{om}{\lVert #2 \rVert\IfValueT{#1}{_{#1}}}
\let\TreeMod=\quotient at recthy
\newcommand*{\TreeMul}{\mathbin{\ast}}
\newcommand*{\TreeExt}{\mathrel{\triangleleft}}
\newcommand*{\TreeExtNeq}{\mathrel{\unlhdneq at recthy}}
+ \newcommand*{\KBless}{\mathrel{<_{\mathrm{KB}}}}
+ \newcommand*{\KBgtr}{\mathrel{>_{\mathrm{KB}}}}
+ \newcommand*{\KBleq}{\mathrel{\leq_{\mathrm{KB}}}}
+ \newcommand*{\KBgeq}{\mathrel{\geq_{\mathrm{KB}}}}
+ \newcommand*{\nKBless}{\mathrel{\nless_{\mathrm{KB}}}}
+ \newcommand*{\nKBgtr}{\mathrel{\ngtr_{\mathrm{KB}}}}
+ \newcommand*{\nKBleq}{\mathrel{\nleq_{\mathrm{KB}}}}
+ \newcommand*{\nKBgeq}{\mathrel{\ngeq_{\mathrm{KB}}}}
\fi
@@ -1331,13 +1502,32 @@
\else
\@packinfo{ordinal notations loading.}
-\providecommand*{\wck}{\ensuremath{\omega^{\mathrm{CK}}_1}}
+ \NewDocumentCommand{\omegaCK}{o}{\omega^{\IfValueTF{#1}{#1}{\mathrm{CK}}}_1}
+ \WithSuffix\def\omegaCK(#1){\omegaCK[{#1}]}
+ \let\wck=\omegaCK
+
+% \providecommand*{\wck}[1][]{\ensuremath{\omega^{\mathrm{CK}}_1}}
% \newcommand*{\ordtype}[1]{\ensuremath{\@recthy at abs{#1}_{\kleeneO}}}
% \newcommand*{\ordzero}{\ensuremath{0}}
- \def\kleeneOSYM{\mathcal{O}}
- \NewDocumentCommand{\kleeneO}{st+t-D(){}o}{\IfBooleanTF{#2}{\vphantom{\kleeneOSYM}^{+}{\kleeneOSYM}}{\IfBooleanTF{#3}{\overrightarrow{\kleeneOSYM}}{\kleeneOSYM}}^{#4}_{\IfBooleanTF{#1}{1\IfValueTF{#5}{,\, #5}{}}{\IfValueTF{#5}{#5}{}}}}
- \newcommand*{\Ouniq}{\kleeneO*}
+ \ifRecthyVersionGreater{4}{0}
+ \def\kleeneOSYM{\mathcal{O}}
+ \NewDocumentCommand{\kleeneO}{t1t+t-sod()}{
+ \IfBooleanTF{#2}{%
+ \vphantom{\kleeneOSYM}^{+}{\kleeneOSYM}%
+ }{%
+ \IfBooleanTF{#3}{\overrightarrow{\kleeneOSYM}}{\kleeneOSYM}
+ }^%
+ {\IfBooleanTF{#4}{*\IfValueT{#6}{, #6}}{\IfValueT{#6}{#6}}%
+ }%
+ _{\IfBooleanTF{#1}{1}{\IfValueTF{#5}{#5}{}}%
+ }
+ }
+ \else
+ \def\kleeneOSYM{\mathcal{O}}
+ \NewDocumentCommand{\kleeneO}{st+t-D(){}o}{\IfBooleanTF{#2}{\vphantom{\kleeneOSYM}^{+}{\kleeneOSYM}}{\IfBooleanTF{#3}{\overrightarrow{\kleeneOSYM}}{\kleeneOSYM}}^{#4}_{\IfBooleanTF{#1}{1\IfValueTF{#5}{,\, #5}{}}{\IfValueTF{#5}{#5}{}}}}
+ \newcommand*{\Ouniq}{\kleeneO*}
+ \fi
% \newcommand*{\kleeneO}{\let\@PMG at parenarg\@PMG at undefined\let\@PMG at braketarg\@PMG at undefined\@kleeneObody}
% \newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG at parenarg
% ^{\@PMG at parenarg}%
@@ -1371,12 +1561,12 @@
% \let\kleeneng=\kleenengtr
\NewDocumentCommand{\Ongeq}{o}{\ngeq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
\newcommand*{\Oadd}{\mathbin{+_{\kleeneOSYM}}}
- \newcommand*{\Omul}{\times_{\kleeneOSYM}}
+ \newcommand*{\Omul}{\cdot_{\kleeneOSYM}}
\NewDocumentCommand{\Ohgt}{sm}{\IfBooleanT{#1}{\left}\lVert #2 \IfBooleanT{#1}{\right}\rVert_{\kleeneOSYM}}
% \newcommand*{\Ohgt}[1]{\lVert #1\rVert_{\kleeneOSYM}}
\let\Oabs=\Ohgt
% \let\hgtO=\kleenehgt
- \newcommand*{\Olim}[2]{{#1}_{[#2]}}
+ \newcommand*{\Olim}[2]{\vec{#1}_{#2}}
\newcommand*{\Opred}[1]{{#1}^{-}}
\NewDocumentCommand{\Ofunc}{mod()}{{\left\{ #1 \right\}}^{\kleeneOSYM}\IfValueTF{#2}{_{#2}}{}\IfValueTF{#3}{\left(#3\right)}{}}
@@ -1478,10 +1668,11 @@
%\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
- \NewDocumentCommand{\recfnl}{oD(){}m!G{#2}!g!d()}{{
- \def\temp at pmg@arg{}
- \IfValueTF{#5}{\ifthenelse{\isempty{#5}}{}{\def\temp at pmg@arg{; #5}}}{\IfValueTF{#6}{\ifthenelse{\isempty{#6}}{}{\def\temp at pmg@arg{; #6}}}}
- \@recthy at recfnlSYM_{#3\IfValueT{#1}{, #1}}\ifthenelse{\isempty{#4}}{}{\!\left(#4\temp at pmg@arg \right)}
+ \NewDocumentCommand{\recfnl}{oD(){}m!G{#2}!g!D(){#5}}{{
+ \@recthy at recfnlSYM_{#3\IfValueT{#1}{, #1}}%
+ \ifthenelse{\isempty{#4}}{
+ \ifthenelse{\isempty{#6}}{}{\!\left(#6\right)}
+ }{\!\left(#4\ifthenelse{\isempty{#6}}{}{; #6}\right)}
}}
@@ -1523,8 +1714,15 @@
\fi
-\newcommand*{\@recthy at join}{\mathbin{\vee}}
-\newcommand*{\@recthy at meet}{\mathbin{\wedge}}
+\newcommand{\@recthy at smallwedge}{\mathrel{\text{\raisebox{0.25ex}{\scalebox{0.8}{$\wedge$}}}}}
+\newcommand{\@recthy at smallvee}{\mathrel{\text{\raisebox{0.25ex}{\scalebox{0.8}{$\vee$}}}}}
+\ifRecthyVersionGreater{4}{0}
+ \newcommand*{\@recthy at join}{\mathbin{\@recthy at smallvee}}
+ \newcommand*{\@recthy at meet}{\mathbin{\@recthy at smallwedge}}
+\else
+ \newcommand*{\@recthy at join}{\mathbin{\vee}}
+ \newcommand*{\@recthy at meet}{\mathbin{\wedge}}
+\fi
\newcommand*{\@recthy at Meet}{\mathop{\bigwedge}}
\newcommand*{\@recthy at Join}{\mathop{\bigvee}}
@@ -1533,6 +1731,7 @@
\else
\DeclareMathOperator{\@recthy at HYP}{HYP}
\NewDocumentCommand{\HYP}{o}{\@recthy at HYP\IfValueTF{#1}{\left(#1\right)}{}}
+ \WithSuffix\def\HYP(#1){\HYP[#1]}
\let\hyp=\HYP
\newcommand*{\@recthy at TSYM}{\symbf{T}}
\newcommand*{\@recthy at ASYM}{\symbf{a}}
@@ -1555,9 +1754,13 @@
\newcommand*{\AREAdegrees}{\ensuremath{\mathscr{R}_\@recthy at ASYM}}
\let\strcRa=\AREAdegrees
% \WithSuffix\def\AREdegrees(#1){\AREdegrees\left(#1\right)}
- \newcommand{\Low}[1][]{\ensuremath{ \text{Low}^{#1} }}
- \newcommand{\LowN}[2][]{\ensuremath{ \text{Low}^{#1}_{#2} }}
- \newcommand{\lowN}[2][]{\ensuremath{ \mathcal{L}^{#1}_{#2} }}
+ % \newcommand{\Low}[1][]{\ensuremath{\text{Low}^{#1} }}
+ % \newcommand{\LowN}[2][]{\ensuremath{\text{Low}^{#1}_{#2} }}
+ \newcommand{\highN}[2][]{\ensuremath{\mathcal{H}^{#1}_{#2} }}
+ \newcommand{\lowN}[2][]{\ensuremath{\mathcal{L}^{#1}_{#2} }}
+ \newcommand*{\GLn}[1]{\operatorname{\mathbf{GL}}_{#1}}
+ \newcommand*{\GHn}[1]{\operatorname{\mathbf{GH}}_{#1}}
+ \newcommand*{\GIn}[1]{\operatorname{\mathbf{GI}}_{#1}}
%%%%%%Turing Degrees
\def\firsttokof at pmg#1{\first at pmg@rdmxs(#1)}
@@ -1626,6 +1829,8 @@
\let\join=\@recthy at join
\let\Join=\@recthy at Join
\let\Meet=\@recthy at Meet
+ \newcommand*{\Tjoin}{\mathbin{\@recthy at join_{\@recthy at TSYM}}}
+ \newcommand*{\Tmeet}{\mathbin{\@recthy at meet_{\@recthy at TSYM}}}
% \let\Tjoin=\degjoin
% \let\Tjoin=\degJoin
% \let\Tmeet=\degmeet
@@ -1706,14 +1911,19 @@
\setlist[pmg at steps,2]{label={Step \arabic{pmg at stepsi}\alph*}, ref={\arabic{pmg at stepsi}\alph*}}
\setlist[pmg at steps,3]{label={Step \arabic{pmg at stepsi}\alph{pmg at stepsii}.\Roman*}, ref={\arabic{pmg at stepsi}\alph{pmg at stepsii}.\Roman*}}
\setlist[pmg at steps,4]{label={Step \arabic{pmg at stepsi}\alph{pmg at stepsii}.\Roman{pmg at stepsiii}\Alph*}, ref={\arabic{pmg at stepsi}\alph{pmg at stepsii}.\Roman{pmg at stepsiii}\Alph*}}
- \crefname{pmg at stepsi}{step}{steps}
- \Crefname{pmg at stepsi}{Step}{Steps}
- \crefname{pmg at stepsii}{step}{steps}
- \Crefname{pmg at stepsii}{Step}{Steps}
- \crefname{pmg at stepsiii}{step}{steps}
- \Crefname{pmg at stepsiii}{Step}{Steps}
- \crefname{pmg at stepsiiii}{step}{steps}
- \Crefname{pmg at stepsiiii}{Step}{Steps}
+ \AtBeginDocument{
+ \ltx at ifpackageloaded{cleveref}
+ {
+ \crefname{pmg at stepsi}{step}{steps}
+ \Crefname{pmg at stepsi}{Step}{Steps}
+ \crefname{pmg at stepsii}{step}{steps}
+ \Crefname{pmg at stepsii}{Step}{Steps}
+ \crefname{pmg at stepsiii}{step}{steps}
+ \Crefname{pmg at stepsiii}{Step}{Steps}
+ \crefname{pmg at stepsiiii}{step}{steps}
+ \Crefname{pmg at stepsiiii}{Step}{Steps}
+ }{}
+ }
\NewDocumentEnvironment{steps}{o}{
\begingroup
\ProvideDocumentCommand{\step}{o}{\IfValueTF{##1}{\item\textbf{##1}:}{\item}}
More information about the tex-live-commits
mailing list.