Comments (1)
Thank you for reporting. The problem here is that the confluence checker assumes there are no metavariables in any of the rewrite rules it gets. This is true for normal rewrite rules, since the REWRITE
pragma makes sure that the rule is fully instantiated before adding it to the signature. However, the confluence checker also takes into account the clauses of regular pattern-matching definitions, and THOSE might contain unsolved metas, as is the case for myrefl
. Possible solutions:
- Refuse to add any rewrite rules to a function if there are still unsolved metas in the definition of that symbol and the confluence checker is on (the simplest but crudest solution).
- Postpone the confluence check by adding it as a new constraint (@liesnikov is gonna love this) and retrying the check once all the metas have been resolved.
- Actually do something smart with metavariables in the confluence checker, which would likely adding a constraint for syntactic equality of terms (up to instantiation of metavariables).
- Or we could even make the confluence checker instantiate the metavariables to the correct solution that makes the rewriting system confluent. In the example here that would mean the
?
would be instantiated torefl
(at least when you would put the whole thing in a mutual block).
I think the first option is what I'll implement for now, but the others are certainly interesting to think about.
from agda.
Related Issues (20)
- Latex backend/package bug: `! Package array Error: Empty preamble: 'l' used.` HOT 5
- Recursion with records HOT 1
- Failed to write interface /usr/share/Agda-stdlib/_build/2.6.4.3/agda/src/Data/Unit/Base.agdai. HOT 2
- fail in solving instance of `⊆-refl` in Agda 2.6.4.3 HOT 12
- with-abstraction regression HOT 6
- U+02B3 (MODIFIER SMALL LETTER R, aka superscript r) not available via \^r HOT 4
- Testsuite: heads up: with GHC 9.10, `throw` will print a callstack HOT 4
- Agda >=2.6.3 hangs on conflicting record directives HOT 4
- Revert cyclic computation of ranges (and ban `mdo` from this code base) HOT 2
- Bad interaction between instance search and opaque HOT 6
- Normalization gives trivial `transp` HOT 1
- `--postfix-projections` do not make use of mixfix syntax HOT 1
- No warning about useless `{-# CATCHALL #-}` pragma
- HTML backend: inconsistent highlighting for macro names
- Internal error on pattern lambda with no clauses
- wrong type for unnamed record constructor
- Search for project root crashes when (parent) directory lacks permissions HOT 1
- quoteTerm loops on dependent copattern lambda HOT 3
- Caching loses reflection-generated pragmas
- Emacs: Support default value of `agda2-infer-type-maybe-toplevel` from type at point HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agda.