Theorem ind | index | src |

theorem ind {x y: nat} (a: nat y) (px: wff x) (p0 pa py ps: wff y):
  $ x = a -> (px <-> pa) $ >
  $ x = 0 -> (px <-> p0) $ >
  $ x = y -> (px <-> py) $ >
  $ x = suc y -> (px <-> ps) $ >
  $ p0 $ >
  $ py -> ps $ >
  $ pa $;
StepHypRefExpression
1 hyp ha
x = a -> (px <-> pa)
2 1 eale
A. x px -> pa
3 peano5
[0 / x] px -> A. x (px -> [suc x / x] px) -> A. x px
4 hyp h0
x = 0 -> (px <-> p0)
5 4 sbe
[0 / x] px <-> p0
6 hyp h1
p0
7 5, 6 mpbir
[0 / x] px
8 3, 7 ax_mp
A. x (px -> [suc x / x] px) -> A. x px
9 nfv
F/ y px -> [suc x / x] px
10 nfv
F/ x py
11 nfsb1
F/ x [suc y / x] px
12 10, 11 nfim
F/ x py -> [suc y / x] px
13 hyp hy
x = y -> (px <-> py)
14 suceq
x = y -> suc x = suc y
15 14 sbeq1d
x = y -> ([suc x / x] px <-> [suc y / x] px)
16 13, 15 imeqd
x = y -> (px -> [suc x / x] px <-> py -> [suc y / x] px)
17 9, 12, 16 cbvalh
A. x (px -> [suc x / x] px) <-> A. y (py -> [suc y / x] px)
18 hyp h2
py -> ps
19 hyp hs
x = suc y -> (px <-> ps)
20 19 sbe
[suc y / x] px <-> ps
21 20 bi2i
ps -> [suc y / x] px
22 18, 21 rsyl
py -> [suc y / x] px
23 22 ax_gen
A. y (py -> [suc y / x] px)
24 17, 23 mpbir
A. x (px -> [suc x / x] px)
25 8, 24 ax_mp
A. x px
26 2, 25 ax_mp
pa

Axiom use

axs_prop_calc (ax_1, ax_2, ax_3, ax_mp, itru), axs_pred_calc (ax_gen, ax_4, ax_5, ax_6, ax_7, ax_10, ax_11, ax_12), axs_peano (peano2, peano5)