Documentation

LeanCert.Tactic.Bound.Lemmas

Tactic-Facing Lemmas for Interval Bounds #

This file provides lemmas designed for use by tactics that verify bounds on expressions using interval arithmetic.

Main theorems #

Core (computable) lemmas #

Extended (noncomputable) lemmas #

Usage #

These lemmas are intended to be used by tactics like interval_bound and interval_decide to close goals of the form ∀ x ∈ I, f(x) ≤ c or similar.

The core lemmas use the computable evaluator and can work with native_decide. The extended lemmas use the noncomputable evaluator with floor/ceil bounds.

Tactic-facing lemmas for interval bounds (core, computable) #

theorem LeanCert.Engine.exprCore_le_of_interval_hi (e : Core.Expr) (hsupp : ExprSupportedCore e) (I : Core.IntervalRat) (c : ) (cfg : EvalConfig := { }) (hdom : evalDomainValid1 e I cfg) (hhi : (evalIntervalCore1 e I cfg).hi c) (x : ) :
x ICore.Expr.eval (fun (x_1 : ) => x) e c

Upper bound lemma for core expressions (computable). FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. Requires domain validity (e.g., log arguments must be positive).

theorem LeanCert.Engine.exprCore_ge_of_interval_lo (e : Core.Expr) (hsupp : ExprSupportedCore e) (I : Core.IntervalRat) (c : ) (cfg : EvalConfig := { }) (hdom : evalDomainValid1 e I cfg) (hlo : c (evalIntervalCore1 e I cfg).lo) (x : ) :
x Ic Core.Expr.eval (fun (x_1 : ) => x) e

Lower bound lemma for core expressions (computable). FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. Requires domain validity (e.g., log arguments must be positive).

theorem LeanCert.Engine.exprCore_lt_of_interval_hi_lt (e : Core.Expr) (hsupp : ExprSupportedCore e) (I : Core.IntervalRat) (c : ) (cfg : EvalConfig := { }) (hdom : evalDomainValid1 e I cfg) (hhi : (evalIntervalCore1 e I cfg).hi < c) (x : ) :
x ICore.Expr.eval (fun (x_1 : ) => x) e < c

Strict upper bound for core expressions (computable). FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. Requires domain validity (e.g., log arguments must be positive).

theorem LeanCert.Engine.exprCore_gt_of_interval_lo_gt (e : Core.Expr) (hsupp : ExprSupportedCore e) (I : Core.IntervalRat) (c : ) (cfg : EvalConfig := { }) (hdom : evalDomainValid1 e I cfg) (hlo : c < (evalIntervalCore1 e I cfg).lo) (x : ) :
x Ic < Core.Expr.eval (fun (x_1 : ) => x) e

Strict lower bound for core expressions (computable). FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. Requires domain validity (e.g., log arguments must be positive).

Tactic-facing lemmas for interval bounds (extended, noncomputable) #

theorem LeanCert.Engine.expr_le_of_interval_hi (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (hhi : (evalInterval1 e I).hi c) (x : ) :
x ICore.Expr.eval (fun (x_1 : ) => x) e c

Upper bound lemma for extended expressions. FULLY PROVED - no sorry, no axioms.

theorem LeanCert.Engine.expr_ge_of_interval_lo (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (hlo : c (evalInterval1 e I).lo) (x : ) :
x Ic Core.Expr.eval (fun (x_1 : ) => x) e

Lower bound lemma for extended expressions. FULLY PROVED - no sorry, no axioms.

theorem LeanCert.Engine.expr_lt_of_interval_hi_lt (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (hhi : (evalInterval1 e I).hi < c) (x : ) :
x ICore.Expr.eval (fun (x_1 : ) => x) e < c

Strict upper bound for extended expressions. FULLY PROVED - no sorry, no axioms.

theorem LeanCert.Engine.expr_gt_of_interval_lo_gt (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (hlo : c < (evalInterval1 e I).lo) (x : ) :
x Ic < Core.Expr.eval (fun (x_1 : ) => x) e

Strict lower bound for extended expressions. FULLY PROVED - no sorry, no axioms.

theorem LeanCert.Engine.expr_le_of_mem_interval (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (x : ) (hx : x I) (hhi : (evalInterval1 e I).hi c) :
Core.Expr.eval (fun (x_1 : ) => x) e c

Variant for single point (extended).

theorem LeanCert.Engine.expr_ge_of_mem_interval (e : Core.Expr) (hsupp : ExprSupported e) (I : Core.IntervalRat) (c : ) (x : ) (hx : x I) (hlo : c (evalInterval1 e I).lo) :
c Core.Expr.eval (fun (x_1 : ) => x) e

Variant for single point (extended).