Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Example of terminating function that are not accepted by Coq

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Example of terminating function that are not accepted by Coq


Chronological Thread 
  • From: Robbert Krebbers <mailinglists AT robbertkrebbers.nl>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Example of terminating function that are not accepted by Coq
  • Date: Wed, 19 Dec 2018 15:19:57 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mailinglists AT robbertkrebbers.nl; spf=None smtp.mailfrom=mailinglists AT robbertkrebbers.nl; spf=None smtp.helo=postmaster AT smtp2.science.ru.nl
  • Ironport-phdr: 9a23:ACOiBhFA022Z/oYvM/8SxZ1GYnF86YWxBRYc798ds5kLTJ78rsywAkXT6L1XgUPTWs2DsrQY07qQ6/iocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbAhEmDmwbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjDQhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VDK/5KlpVRDokj8KOSMn/mHZisJ+j6xVrxyuqBN934Hab5qYNOZ8c67HYd8WWWRMU8RXWidcAo28dYwPD+8ZMOhEqInyvEABogWkBQmwGejhzyVIiWHt0qIhzeshCxrG1xEnEtILqnvUrdH1NKYUUeC6yKnIzC7Db+9N2Trm8ojIdQsuruqSUrJqbcrRylMvGB3egVqLt4PlJSiV2v4Ls2if9udtU/+khW0/qwxpvzSiyNoghpPUio8XxV3I7zh1zYcvKdGlR0N2YcaoHIZfuiyaLYd7RswvT3t1tCokyLAKo4O3cSsFxZkh2hXRceaIc5KS7RLmTOuRISl3hHZieL+nnBay9FSgyvXiWsWuy1ZFsitFncfKtn8RyRPf8NKHSuZn8ken3TaDzwHT6udaLkAojafXNpAszqMqmpYOs0nOETX6lFj3gaOMa0kp9eil5/ziYrr8p5+cM4F0ihv5MqQrgsG/BP43MgkKX2ia/+S827nj/UziQLVWlf07ibPZsJfBKssAuKG5GRNV0oU56xmhFDipy8oXnWMcLF5ffhKHi5DlO0vSL/DgEfe/n1OsnS93yPDBJ73tG4nCLnzekLj6Zrt98E5dyA8rzd9F/Z5UC7cBIOjyWkDrrtDYAAU5YESIxLPsD8w43YcDU0qOBLWYOeXcqwym/OUqdtOLboUYoiq1COIo7fTjl2RxzVoUfK2o25QTaWukBdx8JE+TbGDwgc0MG20HpBF4Sui82w7KaiJae3vnB/F03To8Eo/zVd6SFLDou6SI2WKAJrMTY2lHDl6WFnKyL9eeXP0GZTiOIdVsmDYJT6PnTYtzjUjy5j+/8KJuK6/vwgNdrYjqjoAn/erZnxwo6T9uAs6X3nuWCWdwzDtRGm0GmZtnqEk48W+tlKh1h/sCTI5I4u9RCEEhPp/Ryed3TcrvHATFLI+E

On 12/19/18 3:13 PM, Xuanrui Qi wrote:
Also, Ackermann is not definable in Coq, unless you trick Coq using Program Fixpoint. IIRC it's actually a loophole, but you won't break anything by introducing inconsistency.
You can quite easily define Ackermann in Coq:

Fixpoint ackermann (m : nat) : nat -> nat :=
fix inner (n : nat) : nat :=
match m, n with
| 0, _ => S n
| S m, 0 => ackermann m 1
| S m, S n => ackermann m (inner n)
end.



Archive powered by MHonArc 2.6.18.

Top of Page