-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Make unification logic less strict (#538)
The `Plus` constraint has up till now been too strict in extension unification. So far we have been deriving things like the following: ``` a := Plus("C", b) a := {"A", "B", "C"} implies b := {"A", "B"} ``` (as in `minus_test`, which this PR removes) However, plus should be meant as the union of the the singleton set that it specifies with the extension set of another metavariable. Hence in the above example the solution for `b` could be either `{"A", "B"}` or `{"A", "B", "C"}`. This means that if we have chains of circuit operations which all add the "quantum" resource, they can all be represented as `Plus` constraints
- Loading branch information
Showing
1 changed file
with
75 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters