Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug on extra metavariable in rule RHS #301

Closed
Rehan-MALAK opened this issue Dec 17, 2019 · 1 comment
Closed

Bug on extra metavariable in rule RHS #301

Rehan-MALAK opened this issue Dec 17, 2019 · 1 comment

Comments

@Rehan-MALAK
Copy link
Contributor

Rehan-MALAK commented Dec 17, 2019

Dear all,
There might be a bug with metavariables :

U : Type.
u : U.
f : U -> U.

(; h has a simple type ;)
h : U -> (U -> U) -> U.

(; hx has a dependent type ;)
def Ux : U -> Type.
[x] Ux x --> U.
hx : x:U -> (Ux x -> U) -> U.

(; rules with LHS type = RHS type = U ;)
def g : U -> U.
[i] g i --> h  u f.
[i] g i --> h  i f.
[i] g i --> hx u f.
[i] g i --> hx i f.
[i] g i --> h  u (dummy : U =>u).
[i] g i --> h  i (dummy : U =>u).
[i] g i --> hx u (dummy : U =>u).
[i] g i --> hx i (dummy : U =>u).
[i] g i --> h  u (dummy     =>u).
[i] g i --> h  i (dummy     =>u).
[i] g i --> hx u (dummy     =>u).
[i] g i --> hx i (dummy     =>u).

The last rule works with dedukti but not with lambdapi.
Here is the minimal reproduction of the problem in lambdapi syntax :

constant symbol U : TYPE
constant symbol u : U
symbol Ux : U ⇒ TYPE
rule Ux _ → U
constant symbol hx : ∀ (x : U), (Ux x ⇒ U) ⇒ U
symbol g : U ⇒ U
// set debug +su
rule g &i → hx &i (λ_  , u)
@fblanqui fblanqui changed the title Bug with metavariables Bug on extra metavariable in rule RHS Dec 19, 2019
@fblanqui
Copy link
Member

A temporary solution is to write rule g &i → hx &i (λ_:U, u).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants