Skip to content

feat(Classes): define the polynomial hierarchy - #18

Merged
SamuelSchlesinger merged 14 commits into
SamuelSchlesinger:devfrom
BoltonBailey:feat/polynomial-hierarchy
Aug 30, 2026
Merged

feat(Classes): define the polynomial hierarchy#18
SamuelSchlesinger merged 14 commits into
SamuelSchlesinger:devfrom
BoltonBailey:feat/polynomial-hierarchy

Conversation

@BoltonBailey

@BoltonBailey BoltonBailey commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Defines the polynomial hierarchy via certificate quantifiers

🤖 Generated with Claude Code

BoltonBailey and others added 7 commits July 24, 2026 12:53
Define certificate quantifiers over the pair codec (polyExistsLang /
polyForallLang and their class operators), the levels SigmaP / PiP by
the standard recursion through complement classes, and PH as their
union. Prove quantifier and class-level complement duality,
monotonicity, the recursion laws, and level inclusions, the latter
conditional on the single machine-engineering seam `pairFst ∈ FP`
(first-component pair decoding), isolated as a hypothesis following the
WitnessNTMConstruction pattern. Ported from leanprover/cslib#192,
re-proved against this library's machine model and Set-based languages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@BoltonBailey
BoltonBailey force-pushed the feat/polynomial-hierarchy branch from 5ac1219 to e88f6f8 Compare August 14, 2026 05:05
BoltonBailey and others added 2 commits August 22, 2026 17:16
…c lemmas

Close the `pairFst ∈ FP` seam: the projection is the `fstBlockTM` scanner of
Cobham's algebra, so `pairFst_mem_FP` is `Cobham.fstBlock_mem_FP`, and the base
and level inclusions of the hierarchy no longer take a hypothesis.

The polynomial-time facts about the pairing codec are broadly useful, so they
get their own surface file `Classes/P/Pairing.lean` (`pairFst_mem_FP`,
`pairSnd_mem_FP`, `mem_FP_pair`, `mem_FP_pair_right`,
`mem_P_preimage_pairFst/Snd`). `complClass_mono` moves next to `complClass`
in `Classes/Time.lean` and `complClass_P` next to `P_compl` in
`Classes/Containments.lean`. The unused `SigmaP_one` / `PiP_one` are dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@BoltonBailey
BoltonBailey changed the base branch from dev to refactor/pair-projections August 23, 2026 00:19
@BoltonBailey
BoltonBailey changed the base branch from refactor/pair-projections to dev August 30, 2026 05:59
@BoltonBailey
BoltonBailey marked this pull request as ready for review August 30, 2026 06:13
@SamuelSchlesinger
SamuelSchlesinger merged commit cd96ee0 into SamuelSchlesinger:dev Aug 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants