def decode_unfit.step

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

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/LAWS.bend as Laws

62def decode_unfit.step(+dh: Nat, +dt: List<&2, Nat>, +vh: Nat, +vt: List<&2, Nat>, +verdict: Shape.BoolCase<Nat.is_lt(vh, dh)>, misses: {False{} == Bool.and(Nat.is_lt(vh, dh), Shape.fit(dt, vt)) : Bool}, rec: {False{} == Shape.fit(dt, vt) : Bool} -> {None{} == Laws.decode(dt, vt) : Maybe<&2, Shape.Coordinate(dt)>}) -> {None{} == Laws.decode.step(dh, dt, Laws.decode(dt, vt), Laws.fin_of(dh, vh)) : Maybe<&2, Shape.Coordinate(dh <> dt)>}:
63  match verdict:
64    case Shape.BFalse{equal}:
65      %fin_of_none(dh, vh, equal) : {None{} == Laws.decode.step(dh, dt, Laws.decode(dt, vt), _) : Maybe<&2, Shape.Coordinate(dh <> dt)>}
66      decode_none(dh, dt, Laws.decode(dt, vt))
67    case Shape.BTrue{equal}:
68      %rec(Equal.trans(Bool, False{}, Bool.and(Nat.is_lt(vh, dh), Shape.fit(dt, vt)), Shape.fit(dt, vt), misses, Equal.cong(Bool, Bool, head => Bool.and(head, Shape.fit(dt, vt)), Nat.is_lt(vh, dh), True{}, Equal.sym(Bool, True{}, Nat.is_lt(vh, dh), equal)))) : {None{} == Laws.decode.step(dh, dt, _, Laws.fin_of(dh, vh)) : Maybe<&2, Shape.Coordinate(dh <> dt)>}
69      {==}

Uses (17)

Used by (1)