Documentation

LeanPool.ParameterFreeGradient.V7.Proofs.Stage1E03.Shapes

The early-failure and complete shapes of source Euclidean reports.

@[instance_reducible]

Classical proposition decisions used locally in the report-shape proofs.

Equations
Instances For
    noncomputable def V7.Stage1E03.phaseATraceFrom {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :

    The alternating query and accelerated-point observations of an estimate-phase segment.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def V7.Stage1E03.phaseAGuardsFrom {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :

      The upper-model guards corresponding to an estimate-phase segment.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem V7.Stage1E03.phaseATraceFrom_zero {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k : ℕ) :
        phaseATraceFrom inst M k 0 = []
        @[simp]
        theorem V7.Stage1E03.phaseAGuardsFrom_zero {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k : ℕ) :
        phaseAGuardsFrom inst M k 0 = []
        theorem V7.Stage1E03.phaseATraceFrom_succ {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :
        theorem V7.Stage1E03.phaseAGuardsFrom_succ {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :
        @[simp]
        theorem V7.Stage1E03.phaseATraceFrom_length {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :
        (phaseATraceFrom inst M k fuel).length = 2 * fuel
        @[simp]
        theorem V7.Stage1E03.phaseAGuardsFrom_length {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (M : ℝ) (k fuel : ℕ) :
        (phaseAGuardsFrom inst M k fuel).length = fuel
        def V7.Stage1E03.FailureLedger {d : ℕ} (p M : ℝ) (report : TrialReport d) (failed : ObservableGuardCheck d) :

        The report records precisely the first failed guard after a prefix of accepted guards.

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

          Every observation used in a checked guard occurs in the report's trace.

          Equations
          Instances For
            theorem V7.Stage1E03.prepend_failureLedger {d : ℕ} (p M : ℝ) (history : List (Observation d)) (guards : List (ObservableGuardCheck d)) (tail : TrialReport d) (failed : ObservableGuardCheck d) (hguards : ∀ check ∈ guards, CheckHolds p M check) (htail : FailureLedger p M tail failed) :
            FailureLedger p M (prependReport history guards tail) failed
            theorem V7.Stage1E03.sourcePhaseAReport_shape {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (eps M : ℝ) (n fuel k : ℕ) :
            k + fuel = n → have report := sourcePhaseAReport inst eps M n k fuel; (∃ r < fuel, ∃ (failed : ObservableGuardCheck d), FailureLedger 2 M report failed ∧ GuardPairsInTrace report ∧ report.trace <+: phaseATraceFrom inst M k fuel ∧ report.checkedGuards <+: phaseAGuardsFrom inst M k fuel ∧ report.trace.length = 2 * (r + 1) ∧ report.checkedGuards.length = r + 1 ∧ failed.kind = ObservableGuardKind.upperModel) ∨ (∀ check ∈ phaseAGuardsFrom inst M k fuel, CheckHolds 2 M check) ∧ report = prependReport (phaseATraceFrom inst M k fuel) (phaseAGuardsFrom inst M k fuel) (sourcePhaseBReport inst eps M n (sourceEstimateState inst.oracle M x0 n).accelerated)
            theorem V7.Stage1E03.sourcePhaseBReport_shape {d : ℕ} {x0 : Point d} (inst : PositiveInstance 2 d x0) (eps M : ℝ) (n : ℕ) (U : Point d) :
            have cfg := O3.stage9ExecutionConfig n inst.oracle M U; have newTrace := List.map (fun (j : ℕ) => O3.PairOracle.observe inst.oracle (O3.ogmgState cfg (j + 1)).current) (List.range n); have checks := allInterpolationChecks n fun (i : ℕ) => O3.PairOracle.observe inst.oracle (O3.ogmgState cfg i).current; have terminal := terminalCheck (O3.PairOracle.observe inst.oracle (O3.ogmgState cfg n).current) (O3.PairOracle.observe inst.oracle (O3.ogmgV cfg n)); have report := sourcePhaseBReport inst eps M n U; (∃ (failed : ObservableGuardCheck d), FailureLedger 2 M report failed ∧ (failed.kind = ObservableGuardKind.interpolation ∧ report.trace = newTrace ∧ report.checkedGuards <+: checks ∨ failed.kind = ObservableGuardKind.terminalDescent ∧ report.trace = newTrace ++ [O3.PairOracle.observe inst.oracle (O3.ogmgV cfg n)] ∧ report.checkedGuards = checks ++ [terminal])) ∨ (∃ (on : Observation d), report.outcome = TrialOutcome.success on ∧ on = O3.PairOracle.observe inst.oracle (O3.ogmgState cfg n).current ∧ report.trace = newTrace ++ [O3.PairOracle.observe inst.oracle (O3.ogmgV cfg n)] ∧ report.checkedGuards = checks ++ [terminal] ∧ (∀ check ∈ report.checkedGuards, CheckHolds 2 M check) ∧ lpNorm 2 on.gradient ≤ eps) ∨ ∃ (on : Observation d), report.outcome = TrialOutcome.radius on ∧ on = O3.PairOracle.observe inst.oracle (O3.ogmgState cfg n).current ∧ report.trace = newTrace ++ [O3.PairOracle.observe inst.oracle (O3.ogmgV cfg n)] ∧ report.checkedGuards = checks ++ [terminal] ∧ (∀ check ∈ report.checkedGuards, CheckHolds 2 M check) ∧ eps < lpNorm 2 on.gradient