def fits_of

bendtorch-core@0.1.0.0 · src/shape/coordinate_proofs.bend:122

import bendtorch-core@0.1.0.0/src/shape/coordinate_proofs.bend as CoordinateProofs
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape

122def fits_of(+dims: List<&2, Nat>, +values: List<&2, Nat>, ok: {True{} == Shape.fit(dims, values) : Bool}) -> Fits(dims, values):
123  match dims values:
124    case Nil{} Nil{}:
125      Unit{}
126    case +dh <> +dt +vh <> +vt:
127      fits_of.step(dh, dt, vh, vt, Shape.bool_case(Nat.is_lt(vh, dh)), ok, rest => fits_of(dt, vt, rest))
128    case Nil{} vh <> vt:
129      Empty.absurd(Fits(Nil{}, vh <> vt), Shape.clash(ok))
130    case dh <> dt Nil{}:
131      Empty.absurd(Fits(dh <> dt, Nil{}), Shape.clash(ok))

Uses (11)

Used by (7)