0
$\begingroup$

@Moderators: I apologize because this is very similar to my previous post, but I didn't post the exact axioms there from the beginning (I did quite a major change after receiving a reply).. please delete the previous one (Peano/Presburger axioms - "find" numbers lower or equal than another number) if there are any problems.

Happy New Year,

I am trying to define natural numbers in first-order logic in order to use them in an Automated Theorem Prover. I have tried the Peano axioms on the Wikipedia page with/without multiplication (I don't really need it and thought removing it would make proving faster). I'd like to make the prover "know" (deduce that) the only three numbers lower than or equal to 2 are 0,1,2, but I can't seem to be able to do it. More precisely, I'd like the foolowing statement to be provable (NOTE: 2 is just an example, I'd like it to work for any natural number):

$$\forall x(nat(x) \to (leq(x, s(s(0))) \to (x=0) \lor (x=s(0)) \lor (x=s(s(0))) ))$$

My prover has equality implemented. I define 1,2,3 (where 0,1,2,3 are 0-arity functions.. or I assume I can call them constants) as: $1 = s(0)$ ($equal(1, s(0)$ is what I actually write in the prover) $, 2 = s(1), 3 = s(2)$

My axioms are pretty much these:

$$nat(0)$$ $$\forall x(nat(x) \to nat(s(x))$$ $$\forall x,y(nat(x)\land nat(y) \to nat(add(x,y))$$ $$\forall x( nat(x) \to s(x) \neq 0)$$ $$\forall x,y (nat(x) \land nat(y) \to (s(x)=s(y) \to s=y))$$ $$\forall x(nat(x)\land x\neq 0 \to \exists z (nat(z) \land x = s(z)))$$ $$\forall x(nat(x) \to add(x,0) = 0$$ $$\forall x,y(nat(x)\land nat(y) \to add(x,s(y)) = s(add(x,y)))$$ $$\forall x,y(nat(x)\land nat(y) \to (leq(x,y) \leftrightarrow \exists z(nat(z)\land y = x + z )))$$ (Maybe for the purpose of this question it would have been better to write the last axiom as "forall x,y leq(x,y) <-> nat(x) /\ nat(y) /\ exists z .....")

I know they look quite ugly.. in my prover I'm actually able to type something like this (using what I understand are called "sorts"): $\forall[nat(x)](P(x))$ instead of $\forall x(nat(x) \to P(x)$ so it looks cleaner and easier to follow.

  • 0
    I assume your goal is $\forall x(nat(x) \rightarrow (leq(x, s(s(0))) \to ((x=0) \lor (x=s(0)) \lor (x=s(s(0))))) $2017-01-04
  • 0
    $(1)$: Include a link, in your question, to the earlier question you refer to.2017-01-04
  • 0
    Silly question, maybe, but how do you tell your prover that 1 is the successor of 0 and 2 is the successor of 1?2017-01-04
  • 1
    Why did you repeat, here, the question you asked [there](http://math.stackexchange.com/questions/2082711/peano-presburger-axioms-find-numbers-lower-or-equal-than-another-number)?2017-01-04
  • 0
    @FabioSomenzi : I didn't mention this either.. sorry :(. My prover has equality included.. so I define them like this: equal(1, s(0)), equal(2, s(1)) etc.. I 'll add this to the main post.2017-01-04
  • 0
    @amWhy : I wanted it to be seen from the very beginning in its correct form :( .. in the previous one I had initially given a picture with the axioms, but they didn't include anything like the "nat" predicate.. which is pretty much what I actually used in the prover.2017-01-04
  • 0
    @PhantomR Why don't you use the formula in my earlier comment ... No hassle with 'equal' needed2017-01-04
  • 0
    Do you mean to like write the goal that way :)? Thank you for your advice. Will do.2017-01-04
  • 0
    I've answered the question on your previous post, so I'm voting to close this one as a duplicate.2017-01-04
  • 0
    @AlexKruckman If your answer in fact addresses the question here, why not copy your answer from that post, and post it as an answer here. I think it would be better, if any answer is to be closed as a dupe, it should be the first. At any rate, it would be good to post your answer here.2017-01-04
  • 0
    However, @Alex, you may proceed as you wish.2017-01-04
  • 0
    @amWhy The questions are very similar now (they both have the same list of axioms), but I preferred to post on the original question on principle (questions should be edited, not reposted) and because there's a clear question there ("Are additional axioms needed in order to be able to prove this?"), whereas there's not such a clear question here.2017-01-04
  • 0
    @amWhy But thanks for your advice, I might double post my answer also.2017-01-04
  • 0
    @Alex Post it here, just in case. But I do believe (in agreement with you) that this question is essentially an exact duplicate of the original, and will forthwith vote to close as a duplicate.2017-01-04
  • 0
    Phantom: The only edit of your original question that appears here seems to be your apology to the moderators for reposting here a question you already asked. I have no choice but to vote to close this question.2017-01-04
  • 0
    @amWhy that would be ok ^_^ I would have done it myself in any case ^^2017-01-04

0 Answers 0