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 transcript follows a query strategy when every exchange prefix FollowsStrategy in CumulativeObservation).
This states the next-query rule directly; FollowsStrategy.iff_getElem supplies the equivalent
indexed form when needed for list calculations.
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. For a finite tagged family, the n-ary product multiplies component transcript masses on consistent interleavings and keeps each component's input domain. Independent deterministic component presentations present the same joint cumulative law. The n-ary converter canonicalizes its complete-history rule and combines component domain certificates; stochastic converter families sample their components independently.
Aggregate serial accounting uses costs of actual intermediate query values. The inner component's partial-transcript bound includes pending calls. An input-only composite budget additionally requires the outer weighted sum to be bounded on every reply trace; consecutive-query bounds alone do not provide this result. Direct call rules supply their aggregate bound from the arbitrary-reply phase contract.
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
PDC behaviors have a composition and an identity, with associativity and the left and right identity laws. Attachment samples the PDC, then attaches the sample deterministically: presentations attach to presentations, the identity leaves a system unchanged, and a composition attaches its inner converter first. Parallel composition samples two PDCs independently and runs them side by side, with interchange against serial composition.
A direct call rule reads from the complete history the current invocation, the
latest outside query
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