"One of Peirce's favorite examples... even if it perhaps be not perfectly politically correct: Every [Ork] kills some [Ork]; no [Ork] is killed by more than one [Ork]; therefore every [Ork] is killed by some [Ork]. The argument's conclusion follows validly only if the set of [Orks] is finite."

--"Charles Sanders Peirce," Stanford Encyclopedia of Philosophy

 

Here, we formalize and prove this theorem.

 

THEOREM

*******

 

    ALL(t):ALL(v):[Set(t)

 

    & ALL(a):[a e t => v(a) e t]

 

    & ALL(a):ALL(b):[a e t & b e t => [v(a)=v(b) => a=b]]

 

    => [Finite(t)=> ALL(b):[b e t => EXIST(c):[c e t & v(c)=b]]]]

 

 

This formal proof was written and machine-verified using the author's DC Proof 2.0 freeware available at http://www.dcproof.com

 

 

Dan Christensen

2021-05-30

 

 

Define: Finite  (from R. Dedekind)

 

1     ALL(a):[Set(a) => [Finite(a)

    <=> ALL(f):[ALL(b):[b e a => f(b) e a]

    & ALL(b):ALL(c):[b e a & c e a => [f(b)=f(c) => b=c]]

    => ALL(b):[b e a => EXIST(c):[c e a & f(c)=b]]]]]

      Axiom

 

 

    Let t be the set of Orks, and v be a function on t such that v(x) is the victim of x.

 

 

      2     Set(t)

         & ALL(a):[a e t => v(a) e t]

         & ALL(a):ALL(b):[a e t & b e t => [v(a)=v(b) => a=b]]

            Premise

 

      3     Set(t)

            Split, 2

 

    "Every Ork kills some Ork."

 

    Here, Peirce almost certainly did NOT mean "a least one Ork" but "only one," thus a functional relation.

 

      4     ALL(a):[a e t => v(a) e t]

            Split, 2

 

    "No Ork is killed by more than one Ork."

 

    The function v is injective.

 

      5     ALL(a):ALL(b):[a e t & b e t => [v(a)=v(b) => a=b]]

            Split, 2

 

        

         Suppose there is a finite number of Orks.

 

            6     Finite(t)

                  Premise

 

         Apply the definition of Finite

 

            7     Set(t) => [Finite(t)

             <=> ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]]]

                  U Spec, 1

 

            8     Finite(t)

             <=> ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]]

                  Detach, 7, 3

 

            9     [Finite(t) => ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]]]

             & [ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]] => Finite(t)]

                  Iff-And, 8

 

            10   Finite(t) => ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]]

                  Split, 9

 

            11   ALL(f):[ALL(b):[b e t => f(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [f(b)=f(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & f(c)=b]]]

                  Detach, 10, 6

 

            12   ALL(b):[b e t => v(b) e t]

             & ALL(b):ALL(c):[b e t & c e t => [v(b)=v(c) => b=c]]

             => ALL(b):[b e t => EXIST(c):[c e t & v(c)=b]]

                  U Spec, 11

 

            13   ALL(a):[a e t => v(a) e t]

             & ALL(a):ALL(b):[a e t & b e t => [v(a)=v(b) => a=b]]

                  Join, 4, 5

 

            14   ALL(b):[b e t => EXIST(c):[c e t & v(c)=b]]

                  Detach, 12, 13

 

    "Every Ork is killed by some Ork... only if the set of Orks is finite."

 

      15   Finite(t)

         => ALL(b):[b e t => EXIST(c):[c e t & v(c)=b]]

            4 Conclusion, 6

 

As required:

 

16   ALL(t):ALL(v):[Set(t)

    & ALL(a):[a e t => v(a) e t]

    & ALL(a):ALL(b):[a e t & b e t => [v(a)=v(b) => a=b]]

    => [Finite(t)

    => ALL(b):[b e t => EXIST(c):[c e t & v(c)=b]]]]

      4 Conclusion, 2