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 {==}