0

I need a proof for (¬((p→q) → ¬(q→r))) → (p→r) (which is equivalent to (p→q)→((q→r)→(p→r))) using the three axioms and MP:

Axiom 1: $A \to (B \to A)$.

Axiom 2: $(A \to (B \to C)) \to ((A \to B) \to (A \to C))$.

Axiom 3: $(\neg B \to \neg A) \to (A \to B)$.

yusqai
  • 9
  • 2
  • 1
    See here for the proof of the "derived" ruke : $A→B,B→C \vdash A→C$. To convert it into a proof of the tautology $(p→q)→((q→r)→(p→r))$ is quite easy with the Deduction Theorem, provable with Ax.1 and Ax.2 (without it, it will be quite long ...). – Mauro ALLEGRANZA Oct 12 '14 at 17:34
  • 2
    The formula to be proved has a typo; it must be : $(p→q)→((q→r)→(p→r))$. The version in the question is not a tautology: thus, it is not provable. – Mauro ALLEGRANZA Oct 12 '14 at 17:35
  • In the answer to this post you can find the step from $A→B,B→C \vdash A→C$ to $A→B \vdash (B→C)→(A→C)$ – Mauro ALLEGRANZA Oct 12 '14 at 17:45
  • @MauroALLEGRANZA: I was confused, thanks for the correction. Actually what I am wondering is if it is feasible to prove this formula and others, using this method (and maybe without help of Deduction Theorem) and if there is some efficient technique or algorithm to this. – yusqai Oct 12 '14 at 22:47
  • @yusqai It is certainly possible to prove any tautology. An algorithm exists and it is given by the proof of the Deduction Theorem. – Git Gud Oct 13 '14 at 01:04
  • After the correction, you can again prove (see above) : $(p→q)→((q→r)→(p→r))$ and then apply the equivalence between : $A \rightarrow (B \rightarrow C)$ and $(A \land B) \rightarrow C$ to derive : $((p→q) \land (q→r)) →(p→r)$ and finally apply De Morgan to get : $\lnot ((p→q) \rightarrow \lnot (q→r)) →(p→r)$. – Mauro ALLEGRANZA Oct 13 '14 at 09:41
  • @MauroALLEGRANZA Apply De Morgan? Your strategy suggests that you prove that CaCbc $\vdash$ CNCaNbc (we don't need the whole equivalence... which gives both an "exportation law" and an "importation law"... we only need an "importation law"). Then from CCpqCCqrCpr and that rule we can infer CNCCpqNCqrCpr. I'm not sure if there's a clever way to prove CaCbc $\vdash$ CNCaNbc, but I do know that proving NCaNb $\vdash$ b, as well as NCab $\vdash$ a could serve as an approach here. – Doug Spoonwood Oct 16 '14 at 06:27
  • @DougSpoonwood - I've used : $[(p→q) \land (q→r)] \equiv \lnot [\lnot (p→q) \lor \lnot (q→r)] \equiv \lnot [(p→q) \rightarrow \lnot (q→r)]$. – Mauro ALLEGRANZA Oct 16 '14 at 07:00
  • @MauroALLEGRANZA So then you've used one of the De Morgan laws, and the equivalence $\lnot$(p$\lor$q)≡(p→q). – Doug Spoonwood Oct 16 '14 at 16:34

1 Answers1

1

I use Polish/Lukasiewicz notation. I also make use of condensed detachment.

The axioms in Lukasiewicz notation get re-written as

  1. CpCqp. RVP
  2. CCpCqrCCpqCpr. SD
  3. CCNpNqCqp.

As the question stands right now we want to prove that CNCCpqNCqrCpr. Given the usual definition of conjunction

Definition of conjunction: C $\delta$ NCpNq $\delta$ Kpq

and substituting p with Cpq, q with Cqr, and $\delta$ with C'Cpr we obtain:

C CNCCpqNCqrCpr CKCpqCqrCpr.

Thus, we can think of the problem as asking us to try and prove that CKCpqCqrCpr. Note that K-out-left (Kol): C NCpNq p, and K-out-right (Kor): C NpNq q are both theorems of this system. Both of those are not all that hard to prove on a theorem prover like Prover9. Thus...

hypothesis 1 | NCCpqNCqr
D Kol.1    2 | Cpq
D Kor.1    3 | Cqr (note that NO substitutions happened in the hypothesis)

Then we could prove that Cpq holds underneath the hypothesis (the theorem CCqrCCpqCpr... which is the same as CCpqCCrpCrq is only three condensed detachments away from the axioms I've called "RVP" and "SD"), and then use the proof procedure outlined by the deduction meta-theorem to write an axiomatic proof (along with axiomatic proofs of Kol and Kor).

Alternatively, here's a proof that Prover9 1 gave me while I was writing up this answer:

% -------- Comments from original proof --------

% Proof 3 at 747.44 (+ 64.72) seconds.

% Length of proof is 49.

% Level of proof is 17.

% Maximum clause weight is 24.

% Given clauses 16441.

1 P(C(N(C(C(x,y),N(C(y,z)))),C(x,z))) # label(non_clause) # label(goal). [goal].

4 -P(C(x,y)) | -P(x) | P(y). [assumption].

5 P(C(x,C(y,x))). [assumption].

6 P(C(C(x,C(y,z)),C(C(x,y),C(x,z)))). [assumption].

7 P(C(C(N(x),N(y)),C(y,x))). [assumption].

8 -P(C(N(C(C(c1,c2),N(C(c2,c3)))),C(c1,c3))). [deny(1)].

11 P(C(x,C(y,C(z,y)))). [hyper(4,a,5,a,b,5,a)].

12 P(C(C(C(x,C(y,z)),C(x,y)),C(C(x,C(y,z)),C(x,z)))). [hyper(4,a,6,a,b,6,a)].

13 P(C(x,C(C(y,C(z,u)),C(C(y,z),C(y,u))))). [hyper(4,a,5,a,b,6,a)].

14 P(C(C(x,y),C(x,x))). [hyper(4,a,6,a,b,5,a)].

15 P(C(C(C(N(x),N(y)),y),C(C(N(x),N(y)),x))). [hyper(4,a,6,a,b,7,a)].

16 P(C(x,C(C(N(y),N(z)),C(z,y)))). [hyper(4,a,5,a,b,7,a)].

18 P(C(x,C(y,C(z,C(u,z))))). [hyper(4,a,5,a,b,11,a)].

21 P(C(x,x)). [hyper(4,a,14,a,b,11,a)].

22 P(C(C(C(x,y),x),C(C(x,y),y))). [hyper(4,a,6,a,b,21,a)].

28 P(C(C(x,C(C(y,x),z)),C(x,z))). [hyper(4,a,12,a,b,11,a)].

48 P(C(C(C(x,C(y,z)),C(C(C(x,y),C(x,z)),u)),C(C(x,C(y,z)),u))). [hyper(4,a,12,a,b,13,a)].

51 P(C(C(x,C(C(y,C(z,y)),u)),C(x,u))). [hyper(4,a,12,a,b,18,a)].

94 P(C(C(x,C(N(y),N(z))),C(x,C(z,y)))). [hyper(4,a,6,a,b,16,a)].

153 P(C(N(x),C(x,y))). [hyper(4,a,28,a,b,16,a)].

154 P(C(C(x,y),C(C(z,x),C(z,y)))). [hyper(4,a,28,a,b,13,a)].

159 P(C(x,C(N(y),C(y,z)))). [hyper(4,a,5,a,b,153,a)].

181 P(C(C(C(N(x),C(x,y)),z),z)). [hyper(4,a,22,a,b,159,a)].

985 P(C(C(C(x,y),z),C(y,z))). [hyper(4,a,51,a,b,154,a)].

1267 P(C(x,C(C(C(y,z),u),C(z,u)))). [hyper(4,a,5,a,b,985,a)].

1270 P(C(C(C(C(x,y),C(x,z)),u),C(C(x,C(y,z)),u))). [hyper(4,a,985,a,b,48,a)].

1274 P(C(x,C(C(x,y),y))). [hyper(4,a,985,a,b,22,a)].

1275 P(C(x,C(C(N(y),N(x)),y))). [hyper(4,a,985,a,b,15,a)].

1281 P(C(C(x,y),C(x,C(C(y,z),z)))). [hyper(4,a,154,a,b,1274,a)].

1565 P(C(C(x,C(N(y),N(x))),C(x,y))). [hyper(4,a,6,a,b,1275,a)].

3546 P(C(C(x,C(y,z)),C(y,C(x,z)))). [hyper(4,a,48,a,b,1267,a)].

5191 P(C(N(N(x)),x)). [hyper(4,a,181,a,b,1565,a)].

5220 P(C(N(N(x)),C(C(x,y),y))). [hyper(4,a,1281,a,b,5191,a)].

5255 P(C(x,N(N(x)))). [hyper(4,a,7,a,b,5191,a)].

5330 P(C(C(x,y),C(x,N(N(y))))). [hyper(4,a,154,a,b,5255,a)].

20433 P(C(x,C(C(x,y),N(N(y))))). [hyper(4,a,3546,a,b,5330,a)].

20439 P(C(C(x,y),C(N(N(x)),y))). [hyper(4,a,3546,a,b,5220,a)].

20465 P(C(C(x,y),C(C(y,z),C(x,z)))). [hyper(4,a,3546,a,b,154,a)].

20936 P(C(x,C(C(C(y,x),z),N(N(z))))). [hyper(4,a,985,a,b,20433,a)].

21232 P(C(N(N(x)),C(C(x,y),N(N(y))))). [hyper(4,a,20439,a,b,20433,a)].

26696 P(C(C(C(x,y),z),C(y,N(N(z))))). [hyper(4,a,3546,a,b,20936,a)].

26831 P(C(C(x,y),C(N(N(x)),N(N(y))))). [hyper(4,a,3546,a,b,21232,a)].

28197 P(C(C(C(x,N(y)),z),C(N(z),y))). [hyper(4,a,94,a,b,26696,a)].

28252 P(C(C(x,y),C(N(y),N(x)))). [hyper(4,a,94,a,b,26831,a)].

28286 P(C(C(x,C(y,z)),C(x,C(N(z),N(y))))). [hyper(4,a,154,a,b,28252,a)].

30222 P(C(C(x,C(N(y),z)),C(N(C(x,z)),y))). [hyper(4,a,1270,a,b,28197,a)].

36736 P(C(C(x,y),C(N(C(x,z)),N(C(y,z))))). [hyper(4,a,28286,a,b,20465,a)].

39880 P(C(N(C(C(x,y),N(C(y,z)))),C(x,z))). [hyper(4,a,30222,a,b,36736,a)].

39881 $F. [resolve(39880,a,8,a)].

In an infix notation...

% -------- Comments from original proof --------

% Proof 1 at 0.03 (+ 0.00) seconds.

% Length of proof is 49.

% Level of proof is 17.

% Maximum clause weight is 24.

% Given clauses 46.

1 P(-((x -> y) -> -(y -> z)) -> (x -> z)) # label(non_clause) # label(goal). [goal].

2 -P(x -> y) | -P(x) | P(y). [assumption].

3 P(x -> (y -> x)). [assumption].

4 P((x -> (y -> z)) -> ((x -> y) -> (x -> z))). [assumption].

5 P((-x -> -y) -> (y -> x)). [assumption].

6 -P(-((c4 -> c5) -> -(c5 -> c6)) -> (c4 -> c6)). [deny(1)].

7 P(x -> (y -> (z -> y))). [hyper(2,a,3,a,b,3,a)].

8 P(((x -> (y -> z)) -> (x -> y)) -> ((x -> (y -> z)) -> (x -> z))).
[hyper(2,a,4,a,b,4,a)].

9 P(x -> ((y -> (z -> u)) -> ((y -> z) -> (y -> u)))). [hyper(2,a,3,a,b,4,a)].

10 P((x -> y) -> (x -> x)). [hyper(2,a,4,a,b,3,a)].

11 P(((-x -> -y) -> y) -> ((-x -> -y) -> x)). [hyper(2,a,4,a,b,5,a)].

12 P(x -> ((-y -> -z) -> (z -> y))). [hyper(2,a,3,a,b,5,a)].

14 P(x -> (y -> (z -> (u -> z)))). [hyper(2,a,3,a,b,7,a)].

17 P(x -> x). [hyper(2,a,10,a,b,7,a)].

18 P(((x -> y) -> x) -> ((x -> y) -> y)). [hyper(2,a,4,a,b,17,a)].

21 P((x -> (-y -> -z)) -> (x -> (z -> y))). [hyper(2,a,4,a,b,12,a)].

31 P(-x -> (x -> y)). [hyper(2,a,21,a,b,3,a)].

34 P(x -> (-y -> (y -> z))). [hyper(2,a,3,a,b,31,a)].

35 P(((-x -> (x -> y)) -> z) -> z). [hyper(2,a,18,a,b,34,a)].

54 P((x -> ((y -> (z -> y)) -> u)) -> (x -> u)). [hyper(2,a,8,a,b,14,a)].

57 P(((x -> (y -> z)) -> (((x -> y) -> (x -> z)) -> u)) -> ((x -> (y -> z)) -> u)).
[hyper(2,a,8,a,b,9,a)].

58 P((x -> ((y -> x) -> z)) -> (x -> z)). [hyper(2,a,8,a,b,7,a)].

62 P((x -> y) -> ((z -> x) -> (z -> y))). [hyper(2,a,58,a,b,9,a)].

79 P(((x -> y) -> z) -> (y -> z)). [hyper(2,a,54,a,b,62,a)].

88 P(x -> (((y -> z) -> u) -> (z -> u))). [hyper(2,a,3,a,b,79,a)].

91 P(x -> ((x -> y) -> y)). [hyper(2,a,79,a,b,18,a)].

92 P(x -> ((-y -> -x) -> y)). [hyper(2,a,79,a,b,11,a)].

96 P((x -> y) -> (x -> ((y -> z) -> z))). [hyper(2,a,62,a,b,91,a)].

117 P((x -> (-y -> -x)) -> (x -> y)). [hyper(2,a,4,a,b,92,a)].

172 P(--x -> x). [hyper(2,a,35,a,b,117,a)].

176 P(--x -> ((x -> y) -> y)). [hyper(2,a,96,a,b,172,a)].

182 P(x -> --x). [hyper(2,a,5,a,b,172,a)].

190 P((x -> y) -> (x -> --y)). [hyper(2,a,62,a,b,182,a)].

264 P((((x -> y) -> (x -> z)) -> u) -> ((x -> (y -> z)) -> u)). [hyper(2,a,79,a,b,57,a)].

269 P((x -> (y -> z)) -> (y -> (x -> z))). [hyper(2,a,57,a,b,88,a)].

282 P(x -> ((x -> y) -> --y)). [hyper(2,a,269,a,b,190,a)].

283 P((x -> y) -> (--x -> y)). [hyper(2,a,269,a,b,176,a)].

288 P((x -> y) -> ((y -> z) -> (x -> z))). [hyper(2,a,269,a,b,62,a)].

304 P(x -> (((y -> x) -> z) -> --z)). [hyper(2,a,79,a,b,282,a)].

348 P(--x -> ((x -> y) -> --y)). [hyper(2,a,283,a,b,282,a)].

410 P(((x -> y) -> z) -> (y -> --z)). [hyper(2,a,269,a,b,304,a)].

452 P((x -> y) -> (--x -> --y)). [hyper(2,a,269,a,b,348,a)].

473 P(((x -> -y) -> z) -> (-z -> y)). [hyper(2,a,21,a,b,410,a)].

499 P((x -> y) -> (-y -> -x)). [hyper(2,a,21,a,b,452,a)].

538 P((x -> (y -> z)) -> (x -> (-z -> -y))). [hyper(2,a,62,a,b,499,a)].

636 P((x -> y) -> (-(x -> z) -> -(y -> z))). [hyper(2,a,538,a,b,288,a)].

738 P((x -> (-y -> z)) -> (-(x -> z) -> y)). [hyper(2,a,264,a,b,473,a)].

776 P(-((x -> y) -> -(y -> z)) -> (x -> z)). [hyper(2,a,738,a,b,636,a)].

777 $F. [resolve(776,a,6,a)].

1 W. McCune, "Prover9 and Mace4", http://www.cs.unm.edu/~mccune/Prover9, 2005-2014.