-
Notifications
You must be signed in to change notification settings - Fork 1
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
Direct application of Braga on the Ackermann function #8
base: main
Are you sure you want to change the base?
Conversation
Adding the extraction of let rec ack m n =
match m with
| 0 -> S n
| S m -> ack m
(match n with
| 0 -> S 0
| S n -> ack (S m) n) |
of an inlined type (based on a match), roughtly following the idea in the code proposed by DM of view the nested call as a (inlined) mutually/nested defined function.
…n du récurseur utilisé pour la preuve du déterministe
…part à codage près ...
C'est assez proche de ce qu'on peut faire avec les petites inversions exposées en 2021, à quelques modifs près non neutres :
Encore une fois, il n'y a pas encore de publi officielle sur les petites inversions à base d'inductifs partiels et je dois faire attention à ce qui se passe avec la thèse que je co-encadre avec Pierre sur ce sujet. Je proposerais donc de juste mentionner qu'il y a une parenté avec ce que j'ai exposé en 2021 (et rappelé lapidairement à TYPES 2022), si tu es d'accord. |
En fait ce PR est un exercice d'initiation commencé par @monniaux. Je ne sais pas si il a une autre vocation. En particulier, je n'envisage pas de merge avec
Tu peux me donner une réf. sur cet exposé? Je ne le trouve pas dans ta biblio. |
En 2021 il y a eu 3 exposés, 1 au CNAM en visio, 1 à Verimag (hybride) et 1 au groupe de travail Coq (visio). Dispo depuis ma page, lien direct En 2022 aussi sur ma page, liens directs diapos: https://www-verimag.imag.fr/~monin/Talks/sminv22.pdf |
J'ai mis une propal de commentaires et ai repéré une typo (?) au passage |
En fait je suis très perturbé par le
Donc en fait, je ne suis pas sûr que ce
La raison pour laquelle Maintenant, comment expliquer simplement le produit lexicographique pour ne pas digresser trop fort:
A la réflexion, je ne sais pas trop comment faire de ce petit exercice une étude de cas instructive pour le lecteur:
|
Pour l'instant je vois cet exemple plutôt comme un terrain d'interrogations qu'autre chose, et il faut prendre le temps de le digérer. |
Following an exercise started by David Monniaux, we use the Braga method to implement the Ackermann function, prove its termination (in just two lines of Ltac). Here is the extracted code:
In the file
ackermann_factored.v
, there is the extraction of a much more difficult variant where thematch n
is factored between two branches: