Skip to content

qname keyword#414

Draft
FissoreD wants to merge 13 commits into
LPCIC:masterfrom
FissoreD:qname
Draft

qname keyword#414
FissoreD wants to merge 13 commits into
LPCIC:masterfrom
FissoreD:qname

Conversation

@FissoreD

@FissoreD FissoreD commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

the goal is to extend the syntax with a qname keyword
this keyword works similarly to uvar during matching
the idea is shortcut:
p X :- name X into p (qname X)
this also gives benefit to mutual exclusion checker:
qname is different from any other rigid constructors

  • fix all 3 indexes with qname
  • fix mut-excl checker
  • in rocq-elpi refactor copy, fold-map etc..
  • check is_eigen_variable

@FissoreD FissoreD changed the title Qname qname keyword Jun 11, 2026
@gares

gares commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Do some benchmarks this way:

make git/master
make tests

@gares

gares commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

why q?

@FissoreD

Copy link
Copy Markdown
Collaborator Author

It is for quantified names.
I don't like it, and should be changed
In this first setup i didn't want to make collision with the already existsing name predicate

@gares

gares commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

I think we can make it collide. I did not want to use var because "variable" is very generic, not necessarily unification. But I don't see any confusion with name. Also, I should have added a uvar builtin predicate, synonym of var.

@FissoreD

FissoreD commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator Author

make tests gives me the following error
test not available, some build dependencies are missing
I tried the same command on master and get the same error.
This same error is thrown from launching the file ./tests/test.exe

EDIT: I found the problem, I should have installed ANSITerminal in my opam. With this dep it now works.
Should not opam install . -deps-only install this dep ?

@FissoreD

Copy link
Copy Markdown
Collaborator Author

I think we can make it collide. I did not want to use var because "variable" is very generic, not necessarily unification. But I don't see any confusion with name. Also, I should have added a uvar builtin predicate, synonym of var.

Going back to your comment, I'm not sure the typechecker is happy with this choice,
var is a predicate with at least one argument. While uvar can be used with 0 arguments.
Is this a source of problem?

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

Successfully merging this pull request may close these issues.

2 participants