Files
proxy/lean4/Sunbeam/Model/DecisionTree.lean
Sienna Meridian Satterwhite 982cf5755d feat(lean4): add formal verification specs for ensemble models
Lean 4 formalization of the decision tree + MLP ensemble architecture.
Axiomatizes Float properties (sigmoid bounds, ReLU nonnegativity) since
Lean's Float ops are extern-backed. Proves MLP output is bounded in (0,1)
and ensemble output is always a valid decision. No mathlib dependency.

Signed-off-by: Sienna Meridian Satterwhite <sienna@sunbeam.pt>
2026-03-10 23:38:21 +00:00

24 lines
697 B
Lean4

import Sunbeam.Model.Basic
namespace Sunbeam
/-- A decision tree node (inductive = automatic termination for structural recursion). -/
inductive TreeNode where
| leaf (decision : Decision) : TreeNode
| split (featureIdx : Nat) (threshold : Float) (left right : TreeNode) : TreeNode
deriving Repr
/-- Tree prediction by structural recursion (termination is automatic). -/
def treePredictAux {n : Nat} (input : Fin n Float) : TreeNode Decision
| .leaf d => d
| .split idx thr left right =>
if h : idx < n then
if input idx, h thr then
treePredictAux input left
else
treePredictAux input right
else
Decision.defer
end Sunbeam