The complexity class ZPP
Lax666725.ZeroError · concepts/Lax666725/ZeroError.lean · lax-666725
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A binary language belongs to if a polynomial-time probabilistic machine may answer , , or "don't know", every definite answer is correct, and a definite answer occurs with probability at least on every input. The time bound holds on every branch, including branches that answer "don't know".
This is the bounded-time, failure-allowed definition of zero-error polynomial time. Its familiar expected-polynomial-time characterization uses repeated independent trials until a definite answer is obtained; the equivalence of these characterizations is not a theorem of this submission. Here denotes "don't know" and a definite answer.
Concept map
Lean source view on GitHub
| 1 | import Lax666725.ProbabilisticMachines |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: The complexity class ZPP |
| 6 | type: definition |
| 7 | --- |
| 8 | A binary language belongs to if a polynomial-time |
| 9 | probabilistic machine may answer , , or "don't know", every definite |
| 10 | answer is correct, and a definite answer occurs with probability at least |
| 11 | on every input. The time bound holds on every branch, including |
| 12 | branches that answer "don't know". |
| 13 | |
| 14 | This is the bounded-time, failure-allowed definition of zero-error |
| 15 | polynomial time. Its familiar expected-polynomial-time characterization |
| 16 | uses repeated independent trials until a definite answer is obtained; |
| 17 | the equivalence of these characterizations is not a theorem of this |
| 18 | submission. Here `none` denotes "don't know" and `some b` a definite answer. |
| 19 | -/ |
| 20 | |
| 21 | namespace Lax666725.ZeroError |
| 22 | |
| 23 | open Lax434930.PolynomialTime ProbabilisticMachines |
| 24 | |
| 25 | def ZPP : Set Language := |
| 26 | {L | ∃ A : Procedure (Option Bool), ∀ x, |
| 27 | (∀ r b, A.eval x r = some b → Correct L x b) ∧ |
| 28 | (2 / 3 : ℚ) ≤ A.probability x (fun a => a.isSome = true)} |
| 29 | |
| 30 | end Lax666725.ZeroError |
| 31 |
Builds on
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments