gator icon indicating copy to clipboard operation
gator copied to clipboard

Require Canonical Transformations To Be Unique Under Subsumption

Open Checkmate50 opened this issue 5 years ago • 1 comments

Canonical transformations are assumed to be unique -- there is exactly one canonical map between two coordinate systems. While this is not in fact always true (read: homogeneous coordinates), it is both best practice and most sensical to treat them as such. The only reason we currently do not do this is to allow the norm to homogeneous coordinates hack, something that was found to be done incorrectly from a type perspective.

Practically this means that invocations of in should fail if there are multiple ways to reach label B from label A in a single step (including subsumption). Note that this does not require checking if multiple paths exist over the course of several steps, as we assume that the programmer has checked that each of these paths are equivalent (see https://github.com/cucapra/linguine/wiki/Tutorial:-Casting-and-In-Expressions for details).

Checkmate50 avatar Feb 27 '19 23:02 Checkmate50

We should add tests to check this

Checkmate50 avatar Jan 14 '20 23:01 Checkmate50