Add \maybe macro.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2018-04-21 11:56:12 +01:00
parent d2314f80be
commit 2e2200a0bc
1 changed files with 8 additions and 5 deletions

View File

@ -851,6 +851,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
\newcommand{\paramdot}{\bigcdot}
\newcommand{\lincomb}[1]{\left(\strut\kern-.025em{#1}\kern-0.04em\right)}
\newcommand{\constraint}[3]{\lincomb{#1}\hairspace \times\hairspace \lincomb{#2}\hairspace =\hairspace \lincomb{#3}}
\newcommand{\maybe}[1]{{#1} \union \setof{\bot}}
% Hashes
@ -2726,7 +2728,7 @@ $\SymEncrypt{} \typecolon \Keyspace \times \Plaintext \rightarrow \Ciphertext$
is the encryption algorithm.
$\SymDecrypt{} \typecolon \Keyspace \times \Ciphertext \rightarrow
\Plaintext \union \setof{\bot}$ is the decryption algorithm, such that
\maybe{\Plaintext}$ is the decryption algorithm, such that
for any $\Key \in \Keyspace$ and $\Ptext \in \Plaintext$,
$\SymDecrypt{\Key}(\SymEncrypt{\Key}(\Ptext)) = \Ptext$.
$\bot$ is used to represent the decryption of an invalid ciphertext.
@ -3214,7 +3216,7 @@ A \representedGroup $\GroupG{}$ consists of:
and additive identity $\ZeroG{}$;
\item a bit-length parameter $\ellG{} \typecolon \Nat$;
\item a representation function \smash{$\reprG{} \typecolon \GroupG{} \rightarrow \bitseq{\ellG{}}$}
and an abstraction function \smash{$\abstG{} \typecolon \bitseq{\ellG{}} \rightarrow \GroupG{} \union \setof{\bot}$},
and an abstraction function \smash{$\abstG{} \typecolon \bitseq{\ellG{}} \rightarrow \maybe{\GroupG{}}$},
such that $\abstG{}$ is the left inverse of $\reprG{}$, i.e. for all $P \in \GroupG{}$,
$\abstG{}(\reprG{}(P)) = P$, and for all $S$ not in the image of $\reprG{}$, $\abstG{}(S) = \bot$.
\end{itemize}
@ -3552,7 +3554,8 @@ diversified addresses as a user-visible feature, to nevertheless use a default a
cannot be distinguished (just from the address) from one generated with a random \diversifier
as above.
Let $\first \typecolon (\byte \rightarrow T \union \setof{\bot}) \rightarrow T \union \setof{\bot}$
\introlist
Let $\first \typecolon (\byte \rightarrow \maybe{T}) \rightarrow \maybe{T}$
be as defined in \crossref{concretegrouphashjubjub}.
Define $\DefaultDiversifier(\sk) :=
@ -6572,7 +6575,7 @@ Define $\reprJ \typecolon \GroupJ \rightarrow \ReprJ$ such
that $\reprJOf{u, \varv} = \ItoLEBSPOf{256}{\varv + 2^{255} \smult \tilde{u}}$, where
$\tilde{u} = u \bmod 2$.
Let $\abstJ \typecolon \ReprJ \rightarrow \GroupJ \union \setof{\bot}$
Let $\abstJ \typecolon \ReprJ \rightarrow \maybe{\GroupJ}$
be the left inverse of $\reprJ$ such that if $S$ is not in the range of
$\reprJ$, then $\abstJOf{S} = \bot$.
@ -6675,7 +6678,7 @@ The hash $\GroupJHash{\CRS}(D, M)$ is calculated as follows:
\item If $Q = \ZeroJ$ then return $\bot$, else return $Q$.
\end{formulae}
Define $\first \typecolon (\byte \rightarrow T \union \setof{\bot}) \rightarrow T \union \setof{\bot}$
Define $\first \typecolon (\byte \rightarrow \maybe{T}) \rightarrow \maybe{T}$
so that $\first(f) = f(i)$ where $i$ is the least integer in $\byte$
such that $f(i) \neq \bot$, or $\bot$ if no such $i$ exists.