TorchLean API

NN.Verification.Util.Json

Json #

Shared JSON helpers for TorchLean verification tools.

Many verification workflows consume small JSON “certificates” produced by Python tooling (often PyTorch-based). This module centralizes:

These helpers take a strict stance: malformed certificates fail fast with contextual error messages instead of silently defaulting.

Read and parse a JSON verification artifact from disk.

Use this at checker boundaries instead of repeating IO.FS.readFile and Json.parse in every tool. The file path is included in parse errors.

Instances For

    Ensure a JSON value is an object.

    Instances For

      Extract a required field from a JSON object.

      Instances For

        Read a JSON artifact and require the top-level value to be an object.

        Instances For

          Extract an optional field from a JSON object.

          Instances For

            Require a JSON string in an IO parser, preserving contextual error messages.

            Instances For

              Require a natural number, accepting either JSON numeric syntax or a decimal string.

              Instances For

                Require a JSON array and return its entries.

                Instances For

                  Parse a Nat from a JSON number or decimal string.

                  Instances For

                    Parse a Float from a JSON number or a string containing a JSON number.

                    Instances For

                      Parse a finite Float from a JSON number or a string containing a JSON number.

                      Instances For

                        Parse a finite floating-point value with contextual errors.

                        Instances For

                          Parse a JSON array of finite floats with contextual errors.

                          Instances For

                            Parse a rational in the format emitted by TorchLean’s Arb helpers:

                            • integer: "5", "-3"
                            • fraction: "5/2", "-7/10"

                            Fraction strings represent arbitrary rationals without a floating-point conversion, including values such as 1/3 that cannot be written as a finite JSON decimal.

                            Instances For

                              A finite axis-aligned region parsed from a verification artifact.

                              • dim : ℕ

                                Declared dimension, or the inferred endpoint-array length when dim is absent.

                              • Lower coordinate bounds.

                              • Upper coordinate bounds.

                              Instances For

                                Check the dimensional and ordering invariants of an axis-aligned region.

                                Instances For

                                  Parse either {lo, hi} or {center, eps} notation for a finite axis-aligned region.

                                  When dim is absent, it is inferred from the endpoint or center array. When present, it must be a natural number equal to the resulting endpoint lengths. Numbers are first decoded to host binary64. The {center, eps} arithmetic rounds outward from those decoded values, not from the original exact JSON decimals. Endpoint notation uses the decoded values directly. The parser rejects negative radii, non-finite values, incomplete schemas, and intervals whose lower endpoint exceeds the upper one. Keeping these checks here gives certificate consumers one well-formed region type instead of several subtly different parsers.

                                  Instances For

                                    Parse the endpoint-only schema {lo, hi}, with an optional matching dim field.

                                    Instances For

                                      Parse a finite floating-point-valued field with contextual errors.

                                      Instances For

                                        Parse a string-valued field with contextual errors.

                                        Instances For

                                          Decode a JSON boolean if the value is exactly true or false.

                                          Instances For

                                            Require a finite floating-point value, accepting JSON numbers and string-encoded numbers.

                                            Instances For

                                              Require a JSON boolean and report ctx on mismatch.

                                              Instances For

                                                Require a JSON array of finite floats with contextual errors.

                                                Instances For

                                                  Parse a JSON matrix whose entries are all finite floats.

                                                  Instances For

                                                    Extract an object-valued field.

                                                    Instances For

                                                      Extract a string-valued field.

                                                      Instances For

                                                        Extract a natural-number-valued field.

                                                        Instances For

                                                          Extract an array-valued field.

                                                          Instances For

                                                            Extract an array field, using #[] when it is absent or null.

                                                            Instances For

                                                              Extract a finite-float-array-valued field.

                                                              Instances For

                                                                Extract an optional natural-number-valued field.

                                                                Instances For

                                                                  Extract an optional finite floating-point-valued field.

                                                                  Instances For

                                                                    Extract an optional boolean-valued field.

                                                                    Instances For
                                                                      def NN.Verification.Json.expectFormat (j : Lean.Json) (expected : String) (ctx : String := "top-level") :

                                                                      Require a top-level format field to match an expected artifact schema string.

                                                                      This makes schema checks uniform across verification tools and keeps examples from hand-rolling their own unsupported-format errors.

                                                                      Instances For