def checked_fit

bendtorch-core@0.1.0.0 · src/shape/boundary_proofs.bend:114

import bendtorch-core@0.1.0.0/src/shape/boundary_proofs.bend as BoundaryProofs
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/shape/nat_proofs.bend as Nats
import bendtorch-core@0.1.0.0/src/shape/LAWS.bend as Laws

114def checked_fit(+shape: Shape.Shape, +values: List<&2, Nat>, +verdict: Shape.BoolCase<Shape.fit_values(Shape.dimensions(shape), values)>, ok: {True{} == Shape.fit(Shape.extents(shape), values) : Bool}) -> {Laws.coordinate_result(shape, Shape.coordinate_checked.finish(shape, values, verdict)) == Some{Shape.words(values)} : Maybe<&2, List<&2, U32>>}:
115  match verdict:
116    case Shape.BFalse{equal}:
117      Empty.absurd({None{} == Some{Shape.words(values)} : Maybe<&2, List<&2, U32>>}, Nats.contradiction(Shape.fit(Shape.extents(shape), values), ok, Equal.trans(Bool, False{}, Shape.fit_values(Shape.dimensions(shape), values), Shape.fit(Shape.extents(shape), values), equal, Shape.fit_values_spec(Shape.dimensions(shape), values))))
118    case Shape.BTrue{equal}:
119      {==}

Uses (18)

Used by (1)