let a, b be natural Ordinal; :: thesis: a *^ b = b *^ a
defpred S1[ natural Ordinal] means a *^ $1 = $1 *^ a;
a *^ {} = {} by ORDINAL2:55
.= {} *^ a by ORDINAL2:52 ;
then A1: S1[ {} ] ;
A2: now
let b be natural Ordinal; :: thesis: ( S1[b] implies S1[ succ b] )
defpred S2[ natural Ordinal] means $1 *^ (succ b) = ($1 *^ b) +^ $1;
assume A3: S1[b] ; :: thesis: S1[ succ b]
{} *^ (succ b) = {} by ORDINAL2:52
.= {} +^ {} by ORDINAL2:44
.= ({} *^ b) +^ {} by ORDINAL2:52 ;
then A4: S2[ {} ] ;
A5: now
let a be natural Ordinal; :: thesis: ( S2[a] implies S2[ succ a] )
assume A6: S2[a] ; :: thesis: S2[ succ a]
(succ a) *^ (succ b) = (a *^ (succ b)) +^ (succ b) by ORDINAL2:53
.= (a *^ b) +^ (a +^ (succ b)) by A6, Th33
.= (a *^ b) +^ (succ (a +^ b)) by ORDINAL2:45
.= succ ((a *^ b) +^ (a +^ b)) by ORDINAL2:45
.= succ (((a *^ b) +^ b) +^ a) by Th33
.= succ (((succ a) *^ b) +^ a) by ORDINAL2:53
.= ((succ a) *^ b) +^ (succ a) by ORDINAL2:45 ;
hence S2[ succ a] ; :: thesis: verum
end;
S2[a] from ORDINAL2:sch 17(A4, A5);
hence S1[ succ b] by A3, ORDINAL2:53; :: thesis: verum
end;
thus S1[b] from ORDINAL2:sch 17(A1, A2); :: thesis: verum