mirror of https://github.com/zcash/zips.git
Add \maybe macro.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
d2314f80be
commit
2e2200a0bc
|
@ -851,6 +851,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
||||||
\newcommand{\paramdot}{\bigcdot}
|
\newcommand{\paramdot}{\bigcdot}
|
||||||
\newcommand{\lincomb}[1]{\left(\strut\kern-.025em{#1}\kern-0.04em\right)}
|
\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{\constraint}[3]{\lincomb{#1}\hairspace \times\hairspace \lincomb{#2}\hairspace =\hairspace \lincomb{#3}}
|
||||||
|
\newcommand{\maybe}[1]{{#1} \union \setof{\bot}}
|
||||||
|
|
||||||
|
|
||||||
% Hashes
|
% Hashes
|
||||||
|
|
||||||
|
@ -2726,7 +2728,7 @@ $\SymEncrypt{} \typecolon \Keyspace \times \Plaintext \rightarrow \Ciphertext$
|
||||||
is the encryption algorithm.
|
is the encryption algorithm.
|
||||||
|
|
||||||
$\SymDecrypt{} \typecolon \Keyspace \times \Ciphertext \rightarrow
|
$\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$,
|
for any $\Key \in \Keyspace$ and $\Ptext \in \Plaintext$,
|
||||||
$\SymDecrypt{\Key}(\SymEncrypt{\Key}(\Ptext)) = \Ptext$.
|
$\SymDecrypt{\Key}(\SymEncrypt{\Key}(\Ptext)) = \Ptext$.
|
||||||
$\bot$ is used to represent the decryption of an invalid ciphertext.
|
$\bot$ is used to represent the decryption of an invalid ciphertext.
|
||||||
|
@ -3214,7 +3216,7 @@ A \representedGroup $\GroupG{}$ consists of:
|
||||||
and additive identity $\ZeroG{}$;
|
and additive identity $\ZeroG{}$;
|
||||||
\item a bit-length parameter $\ellG{} \typecolon \Nat$;
|
\item a bit-length parameter $\ellG{} \typecolon \Nat$;
|
||||||
\item a representation function \smash{$\reprG{} \typecolon \GroupG{} \rightarrow \bitseq{\ellG{}}$}
|
\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{}$,
|
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$.
|
$\abstG{}(\reprG{}(P)) = P$, and for all $S$ not in the image of $\reprG{}$, $\abstG{}(S) = \bot$.
|
||||||
\end{itemize}
|
\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
|
cannot be distinguished (just from the address) from one generated with a random \diversifier
|
||||||
as above.
|
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}.
|
be as defined in \crossref{concretegrouphashjubjub}.
|
||||||
|
|
||||||
Define $\DefaultDiversifier(\sk) :=
|
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
|
that $\reprJOf{u, \varv} = \ItoLEBSPOf{256}{\varv + 2^{255} \smult \tilde{u}}$, where
|
||||||
$\tilde{u} = u \bmod 2$.
|
$\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
|
be the left inverse of $\reprJ$ such that if $S$ is not in the range of
|
||||||
$\reprJ$, then $\abstJOf{S} = \bot$.
|
$\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$.
|
\item If $Q = \ZeroJ$ then return $\bot$, else return $Q$.
|
||||||
\end{formulae}
|
\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$
|
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.
|
such that $f(i) \neq \bot$, or $\bot$ if no such $i$ exists.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue