THEOREM

*******

 

a^b * a^c = a^(b+c)  (for non-zero base (a) OR both non-zero exponents (b and c))

 

ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n

=> [~a=0 | ~b=0 & ~c=0 => a^b*a^c=a^(b+c)]]

 

 

This machine-verified, formal proof was written with the aid of the author's DC Proof 2.0 freeware available at http://www.dcproof

 

Dan Christensen

2019-11-10

 

 

OUTLINE

*******

 

Lines    Content

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

 

1-17     Axioms/Definitions for n, 0, 1, +, *, ^

 

18       Lemma for non-zero exponents of zero  (link to proof)

 

24-167   Case 1: ~b=0 and ~c=0  =>  a^b * a^c = a^(b+c)    (by induction)

 

168-203  Case 2:     ~a=0       =>  a^b * a^c = a^(b+c)

 

204-207  Combine results to obtain theorem as required

 

 

 

AXIOMS/DEFINTITIONS

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

 

Define: n, 0, 1

 

1     Set(n)

      Axiom

 

2     0 e n

      Axiom

 

3     1 e n

      Axiom

 

 

Properties of +

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

 

Closed on n

 

4     ALL(a):ALL(b):[a e n & b e n => a+b e n]

      Axiom

 

+ Associative

 

5     ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n => a+b+c=a+(b+c)]

      Axiom

 

Adding 0

 

6     ALL(a):[a e n => a+0=a & 0+a=a]

      Axiom

 

Adding non-zeroes

 

7     ALL(a):ALL(b):[a e n & b e n => [~a=0 | ~b=0 => ~a+b=0]]

      Axiom

 

 

Properties of *

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

 

Closed on n

 

8     ALL(a):ALL(b):[a e n & b e n => a*b e n]

      Axiom

 

Multiplying by 0

 

9     ALL(a):[a e n => a*0=0]

      Axiom

 

Multiplying by 1

 

10   ALL(a):[a e n => a*1=a]

      Axiom

 

Multiplying both sides

 

11   ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n => [a=b => a*c=b*c]]

      Axiom

 

* Associative

 

12   ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n => a*b*c=a*(b*c)]

      Axiom

 

Induction priniciple

 

13   ALL(a):[Set(a) & ALL(b):[b e a => b e n]

    => [0 e a & ALL(b):[b e a => b+1 e a]

    => ALL(b):[b e n => b e a]]]

      Axiom

 

 

Define: ^ on n

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

 

14   ALL(a):ALL(b):[a e n & b e n => [~[a=0 & b=0] => a^b e n]]

      Axiom

 

15   0^1=0

      Axiom

 

16   ALL(a):[a e n => [~a=0 => a^0=1]]

      Axiom

 

17   ALL(a):ALL(b):[a e n & b e n

    => [~[a=0 & b=0] => a^(b+1)=a^b*a]]

      Axiom

 

 

LEMMA 

*****

 

Non-zero powers of zero equal zero                      Proof

 

18   ALL(a):[a e n => [~a=0 => 0^a=0]]

      Axiom

 

   

    PROOF

    *****

   

    Prove: ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n

            => [~a=0 | ~b=0 & ~c=0 => a^b*a^c=a^(b+c)]]

   

    Suppose...

 

      19   x e n & y e n & z e n

            Premise

 

      20   x e n

            Split, 19

 

      21   y e n

            Split, 19

 

      22   z e n

            Split, 19

 

        

         Suppose... (two cases to consider)

 

            23   ~x=0 | ~y=0 & ~z=0

                  Premise

 

            

             Case 1

            

             Prove: ~x=0 => x^y*x^z=x^(y+z)

            

             Suppose...

 

                  24   ~x=0

                        Premise

 

             Construct set p for proof by induction

 

                  25   EXIST(sub):[Set(sub) & ALL(c):[c e sub <=> c e n & x^y*x^c=x^(y+c)]]

                        Subset, 1

 

                  26   Set(p) & ALL(c):[c e p <=> c e n & x^y*x^c=x^(y+c)]

                        E Spec, 25

 

            

             Define: p

 

                  27   Set(p)

                        Split, 26

 

                  28   ALL(c):[c e p <=> c e n & x^y*x^c=x^(y+c)]

                        Split, 26

 

             Apply induction principle

 

                  29   Set(p) & ALL(b):[b e p => b e n]

                 => [0 e p & ALL(b):[b e p => b+1 e p]

                 => ALL(b):[b e n => b e p]]

                        U Spec, 13

 

                 Prove: ALL(b):[b e p => b e n]

                

                 Suppose...

 

                        30   t e p

                              Premise

 

                 Apply definition of p

 

                        31   t e p <=> t e n & x^y*x^t=x^(y+t)

                              U Spec, 28

 

                        32   [t e p => t e n & x^y*x^t=x^(y+t)]

                      & [t e n & x^y*x^t=x^(y+t) => t e p]

                              Iff-And, 31

 

                        33   t e p => t e n & x^y*x^t=x^(y+t)

                              Split, 32

 

                        34   t e n & x^y*x^t=x^(y+t) => t e p

                              Split, 32

 

                        35   t e n & x^y*x^t=x^(y+t)

                              Detach, 33, 30

 

                        36   t e n

                              Split, 35

 

             As Required:

 

                  37   ALL(b):[b e p => b e n]

                        4 Conclusion, 30

 

                  38   Set(p) & ALL(b):[b e p => b e n]

                        Join, 27, 37

 

            

             Sufficient: For ALL(b):[b e n => b e p]

 

                  39   0 e p & ALL(b):[b e p => b+1 e p]

                 => ALL(b):[b e n => b e p]

                        Detach, 29, 38

 

            

             BASE CASE

             *********

            

             Apply definition of p

 

                  40   0 e p <=> 0 e n & x^y*x^0=x^(y+0)

                        U Spec, 28

 

                  41   [0 e p => 0 e n & x^y*x^0=x^(y+0)]

                 & [0 e n & x^y*x^0=x^(y+0) => 0 e p]

                        Iff-And, 40

 

                  42   0 e p => 0 e n & x^y*x^0=x^(y+0)

                        Split, 41

 

            

             Sufficient: For 0 e p

 

                  43   0 e n & x^y*x^0=x^(y+0) => 0 e p

                        Split, 41

 

                  44   x e n => [~x=0 => x^0=1]

                        U Spec, 16

 

                  45   ~x=0 => x^0=1

                        Detach, 44, 20

 

                  46   x^0=1

                        Detach, 45, 24

 

             Apply axiom

 

                  47   ALL(b):[x e n & b e n => [~[x=0 & b=0] => x^b e n]]

                        U Spec, 14

 

                  48   x e n & y e n => [~[x=0 & y=0] => x^y e n]

                        U Spec, 47

 

                  49   x e n & y e n

                        Join, 20, 21

 

                  50   ~[x=0 & y=0] => x^y e n

                        Detach, 48, 49

 

                 Prove: ~[x=0 & y=0]

                

                 Suppose to the contrary...

 

                        51   x=0 & y=0

                              Premise

 

                        52   x=0

                              Split, 51

 

                        53   y=0

                              Split, 51

 

                        54   x=0 & ~x=0

                              Join, 52, 24

 

             As Required:

 

                  55   ~[x=0 & y=0]

                        4 Conclusion, 51

 

                  56   x^y e n

                        Detach, 50, 55

 

                  57   x^y e n => x^y*1=x^y

                        U Spec, 10, 56

 

                  58   x^y*1=x^y

                        Detach, 57, 56

 

                  59   x^y*x^0=x^y

                        Substitute, 46, 58

 

             Apply axiom

 

                  60   y e n => y+0=y & 0+y=y

                        U Spec, 6

 

                  61   y+0=y & 0+y=y

                        Detach, 60, 21

 

                  62   y+0=y

                        Split, 61

 

                  63   0+y=y

                        Split, 61

 

                  64   x^y*x^0=x^(y+0)

                        Substitute, 62, 59

 

                  65   0 e n & x^y*x^0=x^(y+0)

                        Join, 2, 64

 

            

             As Required:

 

                  66   0 e p

                        Detach, 43, 65

 

                

                 INDUCTIVE STEP

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

                

                 Prove: ALL(b):[b e p => b+1 e p]

                

                 Suppose...

 

                        67   t e p

                              Premise

 

                 Apply definition of p

 

                        68   t e p <=> t e n & x^y*x^t=x^(y+t)

                              U Spec, 28

 

                        69   [t e p => t e n & x^y*x^t=x^(y+t)]

                      & [t e n & x^y*x^t=x^(y+t) => t e p]

                              Iff-And, 68

 

                        70   t e p => t e n & x^y*x^t=x^(y+t)

                              Split, 69

 

                        71   t e n & x^y*x^t=x^(y+t) => t e p

                              Split, 69

 

                        72   t e n & x^y*x^t=x^(y+t)

                              Detach, 70, 67

 

                        73   t e n

                              Split, 72

 

                        74   x^y*x^t=x^(y+t)

                              Split, 72

 

                        75   ALL(b):[t e n & b e n => t+b e n]

                              U Spec, 4

 

                        76   t e n & 1 e n => t+1 e n

                              U Spec, 75

 

                        77   t e n & 1 e n

                              Join, 73, 3

 

                        78   t+1 e n

                              Detach, 76, 77

 

                 Apply definition of p

 

                        79   t+1 e p <=> t+1 e n & x^y*x^(t+1)=x^(y+(t+1))

                              U Spec, 28, 78

 

                        80   [t+1 e p => t+1 e n & x^y*x^(t+1)=x^(y+(t+1))]

                      & [t+1 e n & x^y*x^(t+1)=x^(y+(t+1)) => t+1 e p]

                              Iff-And, 79

 

                        81   t+1 e p => t+1 e n & x^y*x^(t+1)=x^(y+(t+1))

                              Split, 80

 

                 Sufficient: For t+1 e p

 

                        82   t+1 e n & x^y*x^(t+1)=x^(y+(t+1)) => t+1 e p

                              Split, 80

 

                        83   ALL(b):[x e n & b e n => [~[x=0 & b=0] => x^b e n]]

                              U Spec, 14

 

                 Apply axiom

 

                        84   x e n & t e n => [~[x=0 & t=0] => x^t e n]

                              U Spec, 83

 

                        85   x e n & t e n

                              Join, 20, 73

 

                        86   ~[x=0 & t=0] => x^t e n

                              Detach, 84, 85

 

                      Prove: ~[x=0 & t=0]

                     

                      Suppose to the contrary...

 

                              87   x=0 & t=0

                                    Premise

 

                              88   x=0

                                    Split, 87

 

                              89   t=0

                                    Split, 87

 

                              90   x=0 & ~x=0

                                    Join, 88, 24

 

                 As Required:

 

                        91   ~[x=0 & t=0]

                              4 Conclusion, 87

 

                        92   x^t e n

                              Detach, 86, 91

 

                 Apply axiom

 

                        93   ALL(b):[x^y e n & b e n => x^y*b e n]

                              U Spec, 8, 56

 

                        94   x^y e n & x^t e n => x^y*x^t e n

                              U Spec, 93, 92

 

                        95   x^y e n & x^t e n

                              Join, 56, 92

 

                        96   x^y*x^t e n

                              Detach, 94, 95

 

                 Apply axiom

 

                        97   ALL(b):[y e n & b e n => y+b e n]

                              U Spec, 4

 

                        98   y e n & t e n => y+t e n

                              U Spec, 97

 

                        99   y e n & t e n

                              Join, 21, 73

 

                        100  y+t e n

                              Detach, 98, 99

 

                 Apply axiom

 

                        101  ALL(b):[x e n & b e n => [~[x=0 & b=0] => x^b e n]]

                              U Spec, 14

 

                        102  x e n & y+t e n => [~[x=0 & y+t=0] => x^(y+t) e n]

                              U Spec, 101, 100

 

                        103  x e n & y+t e n

                              Join, 20, 100

 

                        104  ~[x=0 & y+t=0] => x^(y+t) e n

                              Detach, 102, 103

 

                      Prove: ~[x=0 & y+t=0]

                     

                      Suppose to the contrary...

 

                              105  x=0 & y+t=0

                                    Premise

 

                              106  x=0

                                    Split, 105

 

                              107  y+t=0

                                    Split, 105

 

                              108  x=0 & ~x=0

                                    Join, 106, 24

 

                 As Required:

 

                        109  ~[x=0 & y+t=0]

                              4 Conclusion, 105

 

                        110  x^(y+t) e n

                              Detach, 104, 109

 

                 Apply associativity and commutativity to rearrange terms

 

                        111  ALL(b):ALL(c):[x^y*x^t e n & b e n & c e n => [x^y*x^t=b => x^y*x^t*c=b*c]]

                              U Spec, 11, 96

 

                        112  ALL(c):[x^y*x^t e n & x^(y+t) e n & c e n => [x^y*x^t=x^(y+t) => x^y*x^t*c=x^(y+t)*c]]

                              U Spec, 111, 110

 

                        113  x^y*x^t e n & x^(y+t) e n & x e n => [x^y*x^t=x^(y+t) => x^y*x^t*x=x^(y+t)*x]

                              U Spec, 112

 

                        114  x^y*x^t e n & x^(y+t) e n

                              Join, 96, 110

 

                        115  x^y*x^t e n & x^(y+t) e n & x e n

                              Join, 114, 20

 

                        116  x^y*x^t=x^(y+t) => x^y*x^t*x=x^(y+t)*x

                              Detach, 113, 115

 

                        117  x^y*x^t*x=x^(y+t)*x

                              Detach, 116, 74

 

                        118  ALL(b):ALL(c):[x^y e n & b e n & c e n => x^y*b*c=x^y*(b*c)]

                              U Spec, 12, 56

 

                        119  ALL(c):[x^y e n & x^t e n & c e n => x^y*x^t*c=x^y*(x^t*c)]

                              U Spec, 118, 92

 

                        120  x^y e n & x^t e n & x e n => x^y*x^t*x=x^y*(x^t*x)

                              U Spec, 119

 

                        121  x^y e n & x^t e n

                              Join, 56, 92

 

                        122  x^y e n & x^t e n & x e n

                              Join, 121, 20

 

                        123  x^y*x^t*x=x^y*(x^t*x)

                              Detach, 120, 122

 

                        124  x^y*(x^t*x)=x^(y+t)*x

                              Substitute, 123, 117

 

                        125  ALL(b):[x e n & b e n

                      => [~[x=0 & b=0] => x^(b+1)=x^b*x]]

                              U Spec, 17

 

                        126  x e n & t e n

                      => [~[x=0 & t=0] => x^(t+1)=x^t*x]

                              U Spec, 125

 

                        127  x e n & t e n

                              Join, 20, 73

 

                        128  ~[x=0 & t=0] => x^(t+1)=x^t*x

                              Detach, 126, 127

 

                        129  x^(t+1)=x^t*x

                              Detach, 128, 91

 

                        130  x^y*x^(t+1)=x^(y+t)*x

                              Substitute, 129, 124

 

                        131  ALL(b):[x e n & b e n

                      => [~[x=0 & b=0] => x^(b+1)=x^b*x]]

                              U Spec, 17

 

                        132  x e n & y+t e n

                      => [~[x=0 & y+t=0] => x^(y+t+1)=x^(y+t)*x]

                              U Spec, 131, 100

 

                        133  x e n & y+t e n

                              Join, 20, 100

 

                        134  ~[x=0 & y+t=0] => x^(y+t+1)=x^(y+t)*x

                              Detach, 132, 133

 

                      Prove: ~[x=0 & y+t=0]

                     

                      Suppose to the contrary...

 

                              135  x=0 & y+t=0

                                    Premise

 

                              136  x=0

                                    Split, 135

 

                              137  y+t=0

                                    Split, 135

 

                              138  x=0 & ~x=0

                                    Join, 136, 24

 

                 As Required:

 

                        139  ~[x=0 & y+t=0]

                              4 Conclusion, 135

 

                        140  x^(y+t+1)=x^(y+t)*x

                              Detach, 134, 139

 

                        141  x^y*x^(t+1)=x^(y+t+1)

                              Substitute, 140, 130

 

                        142  ALL(b):ALL(c):[y e n & b e n & c e n => y+b+c=y+(b+c)]

                              U Spec, 5

 

                        143  ALL(c):[y e n & t e n & c e n => y+t+c=y+(t+c)]

                              U Spec, 142

 

                        144  y e n & t e n & 1 e n => y+t+1=y+(t+1)

                              U Spec, 143

 

                        145  y e n & t e n

                              Join, 21, 73

 

                        146  y e n & t e n & 1 e n

                              Join, 145, 3

 

                        147  y+t+1=y+(t+1)

                              Detach, 144, 146

 

                        148  x^y*x^(t+1)=x^(y+(t+1))

                              Substitute, 147, 141

 

                        149  t+1 e n & x^y*x^(t+1)=x^(y+(t+1))

                              Join, 78, 148

 

                        150  t+1 e p

                              Detach, 82, 149

 

             As Required:

 

                  151  ALL(b):[b e p => b+1 e p]

                        4 Conclusion, 67

 

             Joining results...

 

                  152  0 e p & ALL(b):[b e p => b+1 e p]

                        Join, 66, 151

 

             As Required:

 

                  153  ALL(b):[b e n => b e p]

                        Detach, 39, 152

 

                

                 Prove: ALL(c):[c e n => x^y*x^c=x^(y+c)]

                

                 Suppose...

 

                        154  t e n

                              Premise

 

                        155  t e n => t e p

                              U Spec, 153

 

                        156  t e p

                              Detach, 155, 154

 

                 Apply definition of p

 

                        157  t e p <=> t e n & x^y*x^t=x^(y+t)

                              U Spec, 28

 

                        158  [t e p => t e n & x^y*x^t=x^(y+t)]

                      & [t e n & x^y*x^t=x^(y+t) => t e p]

                              Iff-And, 157

 

                        159  t e p => t e n & x^y*x^t=x^(y+t)

                              Split, 158

 

                        160  t e n & x^y*x^t=x^(y+t) => t e p

                              Split, 158

 

                        161  t e n & x^y*x^t=x^(y+t)

                              Detach, 159, 156

 

                        162  t e n

                              Split, 161

 

                        163  x^y*x^t=x^(y+t)

                              Split, 161

 

             As Required:

 

                  164  ALL(c):[c e n => x^y*x^c=x^(y+c)]

                        4 Conclusion, 154

 

                  165  z e n => x^y*x^z=x^(y+z)

                        U Spec, 164

 

                  166  x^y*x^z=x^(y+z)

                        Detach, 165, 22

 

         Case 1

        

         As Required:

 

            167  ~x=0 => x^y*x^z=x^(y+z)

                  4 Conclusion, 24

 

            

             Case 2

            

             Prove: ~y=0 & ~z=0 => x^y*x^z=x^(y+z)

            

             Suppose...

 

                  168  ~y=0 & ~z=0

                        Premise

 

                  169  ~y=0

                        Split, 168

 

                  170  ~z=0

                        Split, 168

 

             Two sub-cases:

 

                  171  x=0 | ~x=0

                        Or Not

 

                

                 Sub-case 1

                

                 Prove: x=0 => x^y*x^z=x^(y+z)

                

                 Suppose...

 

                        172  x=0

                              Premise

 

                 Apply lemma

 

                        173  y e n => [~y=0 => 0^y=0]

                              U Spec, 18

 

                        174  ~y=0 => 0^y=0

                              Detach, 173, 21

 

                        175  0^y=0

                              Detach, 174, 169

 

                        176  x^y=0

                              Substitute, 172, 175

 

                 Apply lemma

 

                        177  z e n => [~z=0 => 0^z=0]

                              U Spec, 18

 

                        178  ~z=0 => 0^z=0

                              Detach, 177, 22

 

                        179  0^z=0

                              Detach, 178, 170

 

                        180  x^z=0

                              Substitute, 172, 179

 

                        181  0 e n => 0*0=0

                              U Spec, 9

 

                        182  0*0=0

                              Detach, 181, 2

 

                        183  x^y*0=0

                              Substitute, 176, 182

 

                 LHS

 

                        184  x^y*x^z=0

                              Substitute, 180, 183

 

                 Apply axiom

 

                        185  ALL(b):[y e n & b e n => y+b e n]

                              U Spec, 4

 

                        186  y e n & z e n => y+z e n

                              U Spec, 185

 

                        187  y e n & z e n

                              Join, 21, 22

 

                        188  y+z e n

                              Detach, 186, 187

 

                 Apply lemma

 

                        189  y+z e n => [~y+z=0 => 0^(y+z)=0]

                              U Spec, 18, 188

 

                        190  ~y+z=0 => 0^(y+z)=0

                              Detach, 189, 188

 

                 Apply axiom

 

                        191  ALL(b):[y e n & b e n => [~y=0 | ~b=0 => ~y+b=0]]

                              U Spec, 7

 

                        192  y e n & z e n => [~y=0 | ~z=0 => ~y+z=0]

                              U Spec, 191

 

                        193  y e n & z e n

                              Join, 21, 22

 

                        194  ~y=0 | ~z=0 => ~y+z=0

                              Detach, 192, 193

 

                        195  ~y=0 | ~z=0

                              Arb Or, 169

 

                        196  ~y+z=0

                              Detach, 194, 195

 

                        197  0^(y+z)=0

                              Detach, 190, 196

 

                        198  x^(y+z)=0

                              Substitute, 172, 197

 

                        199  x^y*x^z=x^(y+z)

                              Substitute, 198, 184

 

             Sub-case 1

            

             As Required:

 

                  200  x=0 => x^y*x^z=x^(y+z)

                        4 Conclusion, 172

 

             Combining results...

 

                  201  [x=0 => x^y*x^z=x^(y+z)] & [~x=0 => x^y*x^z=x^(y+z)]

                        Join, 200, 167

 

                  202  x^y*x^z=x^(y+z)

                        Cases, 171, 201

 

         Case 2

        

         As Required:

 

            203  ~y=0 & ~z=0 => x^y*x^z=x^(y+z)

                  4 Conclusion, 168

 

        

         Combining results...

 

            204  [~x=0 => x^y*x^z=x^(y+z)]

             & [~y=0 & ~z=0 => x^y*x^z=x^(y+z)]

                  Join, 167, 203

 

            205  x^y*x^z=x^(y+z)

                  Cases, 23, 204

 

    As Required:

 

      206  ~x=0 | ~y=0 & ~z=0 => x^y*x^z=x^(y+z)

            4 Conclusion, 23

 

 

As Required:

 

207  ALL(a):ALL(b):ALL(c):[a e n & b e n & c e n

    => [~a=0 | ~b=0 & ~c=0 => a^b*a^c=a^(b+c)]]

      4 Conclusion, 19