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

Legacy terms #5

Open
01mf02 opened this issue Jul 7, 2022 · 4 comments
Open

Legacy terms #5

01mf02 opened this issue Jul 7, 2022 · 4 comments
Labels

Comments

@01mf02
Copy link
Collaborator

01mf02 commented Jul 7, 2022

The current standard draft gives a grammar for so-called "legacy terms" as follows:

t = "TYPE" | qid | t, t
  | "(", id, ":", t, ")", "=>", t
  | "(", id, ":", t, ")", "->", t
  | t, "->", t
  | "(", t, ")";

(See, by the way, how having even BNF as Markdown would make discussion easier? We could just copy-paste parts of the Dedukti standard here and have it syntax-highlighted in discussions. ^^)

Now these "legacy terms" are not what is described in syntax.bnf. In particular, the syntax for lambda-abstractions and dependent products diverges. However, my intuition thinks that "legacy" describes something that "is already there", in other words, the "state of the art". I therefore find the current wording a bit misleading.

Are the differences between the terms in syntax.bnf and the "legacy terms" described in the draft on purpose? If so, what is the reason for the differences?

@01mf02
Copy link
Collaborator Author

01mf02 commented Jul 7, 2022

A similar point could be made for rewrite rules: The draft currently states "Legacy Dedukti syntax" under that point, but the BNF allows something like [λ] a --> b, where the meaning of λ is unclear. Furthermore, this does not allow for [x: A] f x --> g x, because we cannot have typed variables à la x : A in the context.

@francoisthire
Copy link
Collaborator

I think the old syntax should be what is, the syntax of the dk tool suite which is the main tool using this syntax (sorry for Kontroli). AFAIK, the syntax of dk allows both [], [x], and [x:A] for rewrite rules contexts.

@gabrielhdt
Copy link
Member

A similar point could be made for rewrite rules: The draft currently states "Legacy Dedukti syntax" under that point, but the BNF allows something like [λ] a --> b, where the meaning of λ is unclear. Furthermore, this does not allow for [x: A] f x --> g x, because we cannot have typed variables à la x : A in the context.

The lambda is the notation (given by the latex package) for the empty production.

@01mf02
Copy link
Collaborator Author

01mf02 commented Jul 15, 2022

I think the old syntax should be what is, the syntax of the dk tool suite which is the main tool using this syntax (sorry for Kontroli). AFAIK, the syntax of dk allows both [], [x], and [x:A] for rewrite rules contexts.

Do not worry about Kontroli, it accepts precisely what you described as rewrite rule contexts, namely [], [x], and [x:A]. :)
And it also accepts the "old terms" of Dedukti (unlike in early 2020).

But you are only talking about what the old syntax should be. Should the new syntax diverge from this in your opinion?

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

No branches or pull requests

3 participants