This library holds the concrete objects and their laws: deterministic systems, automata and
environments (System), distributions over deterministic systems (PDS), random systems given by
their cumulative probabilities, with their presentations (Cumulative), deterministic converters
and their compositions (DDC), probabilistic converters, programs, attachment and parallel
composition (Converter), the transcript distance and distinguishers
(Distance), games (Game), and typed systems on
interfaces (Typed). It knows nothing of the classes of
ConstructiveCryptography, whose instances on interfaces
take their fields from here. Citations refer to the numbered
references of THEORY.md.
Systems over finite alphabets, answering exactly on a bounded domain [1], [2, Chapter 2],
[3, Chapter 3]. Laws are finitely supported distributions and
A deterministic system (DDS) is a partial function from input histories to
the next output,
A domain
A PDS has a random system, and equivalent PDSs have the same one. Every random system has a finite presentation, so random systems are exactly the classes of equivalent PDSs. Two random systems are equal exactly when their transcript laws agree in every compatible environment, and on a domain of input histories fixed query sequences suffice [1, Lemma 5]. Random systems on one domain form mixtures, and two random systems run independently in parallel form one on the combined alphabets.
A probabilistic automaton answers a query from its state with a law on the next state and the reply, a probabilistic step; its random system follows the sub-law of the states reached with the replies of a transcript, whose weight is the probability of the transcript. On an input domain, two probabilistic automata have the same random system along a simulation, a kernel between their states through which their steps commute. A deterministic automaton with a random initial state is the probabilistic automaton of its point steps, and a probabilistic automaton is a deterministic automaton reading pre-sampled draws, sampled once with the initial state: a random automaton [4, Definition 2].
A random system is memoryless when the law of its reply depends only
on the current query, never on the history: a source "can be memoryless or have memory"
[3, Definition 3.1], and a single-input system given by a conditional distribution is a "discrete
memoryless channel" [3, §3.6.1]. With the reply law
and a random system obeying it is the memoryless system.
A probabilistic automaton whose step replies from every state with the same
law
A DDC is a system on the converter alphabets (outside queries and inside replies in;
inside queries and outside replies out) with at most IsDDCFrom) answers exactly the
converter domain and queries only in
Serial composition
A program is a deterministic oracle body: from its state, the outside query and the
inside exchanges of the current invocation, it computes the reply or the next inside query. A
program can be bounded (at most
Run against a probabilistic automaton, a program is the probabilistic automaton
on pairs of states whose step runs one invocation, the automaton answering
the inside queries with fresh steps; it respects simulations.
Attaching the program's converter to a probabilistic automaton is the program run against
it, the combined system