def observe_allowed_equal

bendtorch-core@0.1.0.0 · src/tensor/elementwise_parallel_proof.bend:278

import bendtorch-core@0.1.0.0/src/tensor/elementwise_parallel_proof.bend as ElementwiseParallelProof
import Base
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
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle

278def observe_allowed_equal(+depth: Nat, +length: Nat, -array: Array<F32>, +index: U32, allowed: Bool,
279  accepted: {allowed == True{} : Bool}, matched: {Storage.index_matches(depth, length, index) == True{} : Bool}) ->
280  {Lifecycle.observe_allowed(depth, length, array, index, allowed) ==
281    Model.observe(F32, depth, array, Refinement.route(depth, index)) : Maybe<&2, F32>}:
282  match allowed:
283    case False{}:
284      Empty.absurd({None{} == Model.observe(F32, depth, array, Refinement.route(depth, index)) : Maybe<&2, F32>}, Arith.clash(accepted))
285    case True{}:
286      %Equal.sym(Bool, Storage.index_matches(depth, length, index), True{}, matched) :
287        {Lifecycle.observe_index(depth, length, array, index, _) == Model.observe(F32, depth, array, Refinement.route(depth, index)) : Maybe<&2, F32>}
288      {==}

Uses (14)

Used by (3)