INTRODUCTION

************

 

The so-called McKinsey Axiom of Modal Logic []<>P => <>[]P or equivalently,

 

    ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ALL(c):[R(b,c) => P(c)]]]]

 

is not true in general. If the set of possible worlds w contains to just two worlds x and y such that R(x,y), P(x)

and ~P(x) then this “axiom” is false.

 

 

This machine-verified formal proof was prepared with the use of author’s DC Proof 2.0 freeware that is available at http://www.dcproof.com

 

 

AXIOMS

******

 

Set of possible worlds

 

1     Set(w)

      Axiom

 

Properties of R (accessibility relation)

 

2     ALL(a):ALL(b):[R(a,b) => a e w & b e w]

      Axiom

 

Reflexivity

 

3     ALL(a):[a e w => R(a,a)]

      Axiom

 

Symmetry

 

4     ALL(a):ALL(b):[R(a,b) => R(b,a)]

      Axiom

 

Properties of worlds x and y

 

w = {x, y}

 

5     ALL(a):[a e w <=> a=x | a=y]

      Axiom

 

6     ~x=y

      Axiom

 

7     P(x)

      Axiom

 

8     ~P(y)

      Axiom

 

9     R(x,y)

      Axiom

 

   

    PROOF

    *****

   

    Prove: ALL(b):[R(x,b) => EXIST(c):[R(b,c) & P(c)]]

   

    Suppose...

 

      10   R(x,z)

            Premise

 

      11   ALL(b):[R(x,b) => x e w & b e w]

            U Spec, 2

 

      12   R(x,z) => x e w & z e w

            U Spec, 11

 

      13   x e w & z e w

            Detach, 12, 10

 

      14   x e w

            Split, 13

 

      15   z e w

            Split, 13

 

    Two cases:

 

      16   z=x | ~z=x

            Or Not

 

         Case 1

 

            17   z=x

                  Premise

 

            18   R(z,z)

                  Substitute, 17, 10

 

            19   R(z,x)

                  Substitute, 17, 18

 

            20   R(z,x) & P(x)

                  Join, 19, 7

 

            21   EXIST(c):[R(z,c) & P(c)]

                  E Gen, 20

 

    Case 1

   

    As Required:

 

      22   z=x => EXIST(c):[R(z,c) & P(c)]

            4 Conclusion, 17

 

         Case 2:

        

         Prove: ~z=x => EXIST(c):[R(z,c) & P(c)]

        

         Suppose...

 

            23   ~z=x

                  Premise

 

            24   z e w <=> z=x | z=y

                  U Spec, 5

 

            25   [z e w => z=x | z=y] & [z=x | z=y => z e w]

                  Iff-And, 24

 

            26   z e w => z=x | z=y

                  Split, 25

 

            27   z=x | z=y => z e w

                  Split, 25

 

            28   z=x | z=y

                  Detach, 26, 15

 

            29   ~z=x => z=y

                  Imply-Or, 28

 

            30   z=y

                  Detach, 29, 23

 

            31   ALL(b):[R(x,b) => R(b,x)]

                  U Spec, 4

 

            32   R(x,z) => R(z,x)

                  U Spec, 31

 

            33   R(z,x)

                  Detach, 32, 10

 

            34   R(z,x) & P(x)

                  Join, 33, 7

 

            35   EXIST(c):[R(z,c) & P(c)]

                  E Gen, 34

 

    Case 2

   

    As Required:

 

      36   ~z=x => EXIST(c):[R(z,c) & P(c)]

            4 Conclusion, 23

 

      37   [z=x => EXIST(c):[R(z,c) & P(c)]]

         & [~z=x => EXIST(c):[R(z,c) & P(c)]]

            Join, 22, 36

 

      38   EXIST(c):[R(z,c) & P(c)]

            Cases, 16, 37

 

As Required:

 

39   ALL(b):[R(x,b) => EXIST(c):[R(b,c) & P(c)]]

      4 Conclusion, 10

 

    Prove: ALL(b):[R(x,b) => EXIST(c):[R(b,c) & ~P(c)]

   

    Suppose...

 

      40   R(x,z)

            Premise

 

      41   ALL(b):[R(x,b) => x e w & b e w]

            U Spec, 2

 

      42   R(x,z) => x e w & z e w

            U Spec, 41

 

      43   x e w & z e w

            Detach, 42, 40

 

      44   x e w

            Split, 43

 

      45   z e w

            Split, 43

 

    Two cases to consider:

 

      46   z=y | ~z=y

            Or Not

 

         Case 1

 

            47   z=y

                  Premise

 

            48   z e w => R(z,z)

                  U Spec, 3

 

            49   R(z,z)

                  Detach, 48, 45

 

            50   R(z,y)

                  Substitute, 47, 49

 

            51   R(z,y) & ~P(y)

                  Join, 50, 8

 

            52   EXIST(c):[R(z,c) & ~P(c)]

                  E Gen, 51

 

    Case 1

   

    As Required:

 

      53   z=y => EXIST(c):[R(z,c) & ~P(c)]

            4 Conclusion, 47

 

         Case 2

        

         Prove: ~z=y => EXIST(c):[R(z,c) & ~P(c)]

        

         Suppose...

 

            54   ~z=y

                  Premise

 

            55   z e w <=> z=x | z=y

                  U Spec, 5

 

            56   [z e w => z=x | z=y] & [z=x | z=y => z e w]

                  Iff-And, 55

 

            57   z e w => z=x | z=y

                  Split, 56

 

            58   z=x | z=y => z e w

                  Split, 56

 

            59   z=x | z=y

                  Detach, 57, 45

 

            60   ~z=x => z=y

                  Imply-Or, 59

 

            61   ~z=y => ~~z=x

                  Contra, 60

 

            62   ~z=y => z=x

                  Rem DNeg, 61

 

            63   z=x

                  Detach, 62, 54

 

            64   R(z,y)

                  Substitute, 63, 9

 

            65   R(z,y) & ~P(y)

                  Join, 64, 8

 

            66   EXIST(c):[R(z,c) & ~P(c)]

                  E Gen, 65

 

    Case 2

   

    As Required:

 

      67   ~z=y => EXIST(c):[R(z,c) & ~P(c)]

            4 Conclusion, 54

 

      68   [z=y => EXIST(c):[R(z,c) & ~P(c)]]

         & [~z=y => EXIST(c):[R(z,c) & ~P(c)]]

            Join, 53, 67

 

      69   EXIST(c):[R(z,c) & ~P(c)]

            Cases, 46, 68

 

As Required:

 

70   ALL(b):[R(x,b) => EXIST(c):[R(b,c) & ~P(c)]]

      4 Conclusion, 40

 

71   ALL(b):[R(x,b) => x e w & b e w]

      U Spec, 2

 

72   R(x,y) => x e w & y e w

      U Spec, 71

 

73   x e w & y e w

      Detach, 72, 9

 

74   x e w

      Split, 73

 

75   y e w

      Split, 73

 

76   ALL(b):[R(x,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(x,b) => EXIST(c):[R(b,c) & ~P(c)]]

      Join, 39, 70

 

77   x e w

    & [ALL(b):[R(x,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(x,b) => EXIST(c):[R(b,c) & ~P(c)]]]

      Join, 74, 76

 

78   EXIST(a):[a e w

    & [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      E Gen, 77

 

79   ~ALL(a):~[a e w

    & [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Quant, 78

 

80   ~ALL(a):~~[a e w => ~[ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Imply-And, 79

 

81   ~ALL(a):[a e w => ~[ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]]

    & ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Rem DNeg, 80

 

82   ~ALL(a):[a e w => ~~[ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => ~ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Imply-And, 81

 

83   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => ~ALL(b):[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Rem DNeg, 82

 

84   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => ~~EXIST(b):~[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Quant, 83

 

85   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):~[R(a,b) => EXIST(c):[R(b,c) & ~P(c)]]]]

      Rem DNeg, 84

 

86   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):~~[R(a,b) & ~EXIST(c):[R(b,c) & ~P(c)]]]]

      Imply-And, 85

 

87   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ~EXIST(c):[R(b,c) & ~P(c)]]]]

      Rem DNeg, 86

 

88   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ~~ALL(c):~[R(b,c) & ~P(c)]]]]

      Quant, 87

 

89   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ALL(c):~[R(b,c) & ~P(c)]]]]

      Rem DNeg, 88

 

90   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ALL(c):~~[R(b,c) => ~~P(c)]]]]

      Imply-And, 89

 

91   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ALL(c):[R(b,c) => ~~P(c)]]]]

      Rem DNeg, 90

 

As Required:

 

92   ~ALL(a):[a e w => [ALL(b):[R(a,b) => EXIST(c):[R(b,c) & P(c)]] => EXIST(b):[R(a,b) & ALL(c):[R(b,c) => P(c)]]]]

      Rem DNeg, 91