Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] True arithmetical proposition not provable

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] True arithmetical proposition not provable


Chronological Thread 
  • From: Dominik Kirst <dominik.kirst AT cs.uni-saarland.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] True arithmetical proposition not provable
  • Date: Sun, 20 Jun 2021 22:40:11 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=dominik.kirst AT cs.uni-saarland.de; spf=Pass smtp.mailfrom=dominik.kirst AT cs.uni-saarland.de; spf=None smtp.helo=postmaster AT triton.rz.uni-saarland.de
  • Ironport-hdrordr: A9a23:9MY/16BtNYVLE2zlHem955DYdb4zR+YMi2TDsHoBLCC9E/bo9fxG+c5w6faaslossR0b9+xoW5PwIk80l6QZ3WB5B97LNzUO3lHIEGgI1+TfKlPbexHDyg==
  • Ironport-phdr: A9a23:yqKLohNq35LFaWTYQOol6nabDRdPi9zP1u491JMrhvp0f7i5+Ny6ZQqDvKQr1wSWFtyCtLptsKn/i+jYQ2sO4JKM4jgpUadncFs7s/gQhBEqG8WfCEf2f7bAZi0+G9leBhc+pynoeUdaF9zjaFLMv3a88SAdGgnlNQpyO+/5BpPeg9642uyv/5DfeQtFiTS/bL99MRm6sAfcvdQKjIV/Lao81gHHqWZSdeRMwmNoK1OTnxLi6cq14ZVu7Sdete8/+sBZSan1cLg2QrJeDDQ9LmA6/9brugXZTQuO/XQTTGMbmQdVDgff7RH6WpDxsjbmtud4xSKXM9H6QawyVD+/6apgVR3mhzodNzMh8G/YlsN/gr9VrhKvuRJwwY3aboaOOfVkYq/deMkXRWpdUstTUSFKH4Oyb5EID+oEJetWoY79p14PrRu4BAmsB/7kxDpJhn/sxq06z/kqHAbb0wwnGtIOsXLUrNT2NKsIUuC1zbPIzS7fb/5NxTj985LEcg0nofGNRL5watDexlM1FwPBlFqQr5HqMymI2esTqmWW6fdrWu2zhWA9sQ5xviSvydk2ionPno8bxVDJ+CdlzIs6K9C0VlJ2bNqkHZZeqS2UOYV4T8MiTmxquis3y70Lt5GmcCUL1pkqxxDRZv2bfoWI4R/uVeifLDFlj3xrf7K/ggy98UmmyuDkS8m01ldKojNektbWrH8NzRjT5dKBSvRg5EuuxCiA2gbO4e9HOUA5jbfXJpAuz7IqkpcesF7PEy3slEnojKKabkYp9vay5+j5frnrpIWQO5F6hwz8KKgjlMKyDOIlOQYURWeb4/6z1Lj78E35XrpKivo2n7HFsJDAJMQbuqm5AwlP3oY56hezFSqm0NIZnXUeN1JKYgiIj5LtO17UJvD3EO2zjEmynztzxvDGOKPuAonVI3Tenrrscqxx5kpdxQYpz91T/YxYB7EZLPL2QEDxtdjYDhEjMwyzxubqEMhy1oQbWWKOBK+ZMaDSvUWL5uIuOemMf5MVtS3hJPg+/fLukHk5mV4Ecamyx5QYcmq4HvB8LEWffHXgmMoOHnkSsgokUOPqkEGCUSJUZ3uqQ6084Sg7BJu6AofHW4Cim6eM3Dy7H51TfmBJEEqAEXbud4WeWvcDcjieIsF7km9Mab/0QIg4kBqqqQXSyrx9L+OS9DdLm4jk0Y1Z4OjSkxAxvR91Fd+BmzWBSGR1mGILATw3xrtjiUdmjEqF0O1jivVCEdVV67VFX1FpZtbn0+VmBoWqCUr6ddCTRQP+Kj1HKS0rT842xZkUcQBgHdTnlRnKxS6jBbNTm7HZXPTcHYrXxD7sIcc40H/Pzq0oiVVgTsYdbAVOY4Z07E7OAY+MiEyQjaKjc6ha0COfrA++

Hi Vincent,

could you also explain in what sense InterpProp can be seen as the provability predicate for PA? To me it looks like the usual Prop-valued evaluation of formulas in the standard model. If you formulate the provability predicate instead as a concrete inductive predicate just relying on the syntax, you end up with a relation that can indeed be shown strictly weaker than InterpProp. In fact, InterpProp is easily shown negation-complete if you assume LEM on Prop while negation-incompleteness of the provability predicate has already been mechanised a couple of times, not only in Coq.

We’ll actually be presenting one of these mechanisations at ITP in two weeks, maybe the paper is interesting for you as you also mentioned ZFC:
https://www.ps.uni-saarland.de/extras/axiomatisations/

Best wishes,
Dominik



On 19. Jun 2021, at 10:22, Vincent Semeria <vincent.semeria AT gmail.com> wrote:

Gödel's incompleteness theorem asserts that the consistency of first-order theories (such as Peano arithmetic or ZFC) is an arithmetical formula which is true in the standard model of arithmetic, but which is not provable by the theory in question.

Assuming LPO, I defined interpretations of arithmetical formulas in Coq, both in bool and in Prop, as shown below. I imagine that Coq's consistency is an arithmetical formula that would be interpreted to true by InterpBool. And not provable would mean that its InterpProp is not provable (as a Prop). However I also proved that InterpBool and InterpProp are equivalent, by an easy induction on the formula. Then I don't see how a true arithmetical formula would be not provable. Is there a problem in my interpretations, or maybe is it because Coq is a second-order logic, in which incompleteness manifests differently ?

Fixpoint InterpProp (varValues : nat -> nat) (p : PeanoProp) {struct p} : Prop :=
  match p with
  | Eq a b => InterpTerm varValues a = InterpTerm PS varValues b
  | Not q => ~InterpProp varValues q
  | And q r => InterpProp varValues q /\ InterpProp varValues r
  | Or q r => InterpProp varValues q \/ InterpProp varValues r
  | Implies q r => InterpProp varValues q -> InterpProp varValues r
  | Forall n q (* i.e. forall Xn, q *)
    => forall m:Inat PS, InterpProp (SetVarValue n m varValues) q
  | Exists n q
    => exists m:Inat PS, InterpProp (SetVarValue n m varValues) q
  end.

Axiom LPO : forall un : nat -> bool, { exists n:nat, un n = true } + { forall n:nat, un n = false }.

Fixpoint InterpBool (varValues : nat -> nat) (p : PeanoProp) {struct p} : bool :=
  match p with
  | Eq a b => Nat.eqb (InterpTerm PeanoNat varValues a)
                     (InterpTerm PeanoNat varValues b)
  | Not q => negb (InterpBool varValues q)
  | And q r => andb (InterpBool varValues q) (InterpBool varValues r)
  | Or q r => orb (InterpBool varValues q) (InterpBool varValues r)
  | Implies q r => implb (InterpBool varValues q) (InterpBool varValues r)
  | Forall n q (* i.e. forall Xn, q *)
    => if LPO (fun m:nat => negb (InterpBool (SetVarValue n m varValues) q))
      then false else true
  | Exists n q
    => if LPO (fun m:nat => InterpBool (SetVarValue n m varValues) q)
      then true else false
  end.

Lemma InterpBoolPropEquiv : forall (p : PeanoProp) (varValues : nat -> nat),
    (InterpBool varValues p = true <-> InterpProp PeanoNat varValues p).
Proof.
induction p. ...
Qed.




Archive powered by MHonArc 2.6.19+.

Top of Page