def finish_pair

bendtorch-core@0.1.0.0 · src/storage/api.bend:128

import bendtorch-core@0.1.0.0/src/storage/api.bend as Api
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/storage/certificates.bend as Certificates
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage

128def finish_pair(+d: Nat, +n: Nat, -original: Array<F32>, pair: Array<F32> & Array<F32>,
129  -exact: {pair == Array.clone(F32, original) : Array<F32> & Array<F32>},
130  -balanced: Model.Balanced(F32, d, original), -valid: {Storage.bounds(d, n) == True{} : Bool}) ->
131  {Storage.finish_clone(d, n, original, pair, exact, balanced, valid) ==
132    (Storage.Owned{d, n, Pair.fst(Array<F32>, Array<F32>, pair), Certificates.clone_first(F32, d, original, pair, exact, balanced), valid},
133      Storage.Owned{d, n, Pair.snd(Array<F32>, Array<F32>, pair), Certificates.clone_second(F32, d, original, pair, exact, balanced), valid})
134    : Storage.Storage & Storage.Storage}:
135  (first, second) = pair
136  {==}

Uses (15)

Used by (4)