def observe_allowed_equal
bendtorch-core@0.1.0.0 · src/tensor/transform_PROOF.bend:379
import bendtorch-core@0.1.0.0/src/tensor/transform_PROOF.bend as TransformPROOF
import Base
import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/storage/refinement.bend as Refinement
379def observe_allowed_equal(+depth: Nat, +length: Nat, -array: Array<F32>, +index: U32, allowed: Bool,
380 accepted: {allowed == True{} : Bool}, matched: {Storage.index_matches(depth, length, index) == True{} : Bool}) ->
381 {Lifecycle.observe_allowed(depth, length, array, index, allowed) ==
382 Model.observe(F32, depth, array, Refinement.route(depth, index)) : Maybe<&2, F32>}:
383 match allowed:
384 case False{}:
385 Empty.absurd({None{} == Model.observe(F32, depth, array, Refinement.route(depth, index)) : Maybe<&2, F32>},
386 Lifecycle.false_true(Equal.sym(Bool, False{}, True{}, accepted)))
387 case True{}:
388 observe_index_equal(depth, length, array, index, Storage.index_matches(depth, length, index), matched)