TorchLean API

NN.MLTheory.CROWN.Proofs.GraphAlphaCrownTransferSoundness.Alpha.Leaf

α-CROWN Transfer: Leaf Nodes #

The .input and .const cases of alphaCrown_transfer_sound. Neither reads a parent certificate: the input node returns the identity bounds and the constant node returns the point box of its stored value.

theorem NN.MLTheory.CROWN.Graph.AlphaCrownTransferSoundness.Alpha.input_sound {g : Graph} {ps : ParamStore } {ibp : Array (Option (FlatBox ))} {alpha : Array (Option (FlatTensor ))} {cert : Array (Option (FlatAffineBounds ))} {inputs : Std.HashMap CertSoundness.Val} {vals : Array (Option CertSoundness.Val)} {ctx : AffineCtx} {x : TorchLean.Tensor [ctx.inputDim]} {id : } {b : FlatAffineBounds } {v : CertSoundness.Val} (hk : g.nodes[id]!.kind = IR.OpKind.input) (hs : stepAlpha g ps ibp alpha ctx cert id = some b) (hEvalSome : CertSoundness.evalNode? g.nodes ps inputs vals id = some v) (hinputs : InputsMatch inputs ctx x) :

The .input case: the step succeeds only at the designated input node and returns the identity bounds, which enclose the input point x, and InputsMatch identifies the semantic value with x.

The .const case: the step and the evaluator both read ps.constVals[id]?, and the step returns the point box of the constant, which encloses it.