Documentation

LeanCert.Core.DyadicFrontier

Checked addressed dyadic frontiers #

An inductive tree makes coverage structural. A flat list of paths is convenient for untrusted search, serialization, and parallel replay. This module connects the two with a small checker that reconstructs a tree and accepts only its exact canonical leaf list. Acceptance certifies that the decoded paths form a complete binary cover; correspondence between those paths and any external proof or evaluation records must be maintained by the producer of those records.

A complete binary subdivision tree. A leaf means that the corresponding closed cell is part of the certificate frontier.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Canonical root-relative paths of all leaves, ordered left to right.

      Equations
      Instances For
        @[simp]
        theorem LeanCert.Core.DyadicSubdivisionTree.paths_split (left right : DyadicSubdivisionTree) :
        (left.split right).paths = List.map (fun (x : List Bool) => false :: x) left.paths ++ List.map (fun (x : List Bool) => true :: x) right.paths

        Every point in the root belongs to at least one closed leaf cell.

        Maximum submitted path length, used only as reconstruction fuel.

        Equations
        Instances For

          Structurally check a flat, canonically ordered list of addressed leaves. On success the returned tree is a proof-friendly reconstruction of precisely those leaves. This does not independently associate the paths with external leaf evidence.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem LeanCert.Core.DyadicFrontier.check_eq_some_paths {leaves : List DyadicPath} {tree : DyadicSubdivisionTree} (hcheck : check leaves = some tree) :
            tree.paths = leaves

            Successful checking pins the reconstructed tree to the submitted paths.

            theorem LeanCert.Core.DyadicFrontier.exists_mem_decode_of_check {leaves : List DyadicPath} {tree : DyadicSubdivisionTree} (hcheck : check leaves = some tree) (root : IntervalDyadic) {x : ℝ} (hx : x ∈ root) :
            ∃ path ∈ leaves, x ∈ DyadicPath.decodeByBisection root path

            Golden coverage theorem for an accepted flat frontier.