theorem lreceqd (_G: wff) (_z1 _z2: nat) (_S1 _S2: set) (_n1 _n2: nat):
$ _G -> _z1 = _z2 $ >
$ _G -> _S1 == _S2 $ >
$ _G -> _n1 = _n2 $ >
$ _G -> lrec _z1 _S1 _n1 = lrec _z2 _S2 _n2 $;
Step | Hyp | Ref | Expression |
1 |
|
eqidd |
_G -> size (Dom f) = size (Dom f) |
2 |
|
biidd |
_G -> (i = 0 <-> i = 0) |
3 |
|
hyp _zh |
_G -> _z1 = _z2 |
4 |
|
hyp _Sh |
_G -> _S1 == _S2 |
5 |
|
eqidd |
_G -> fst (i - 1), snd (i - 1), f @ snd (i - 1) = fst (i - 1), snd (i - 1), f @ snd (i - 1) |
6 |
4, 5 |
appeqd |
_G -> _S1 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1)) = _S2 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1)) |
7 |
2, 3, 6 |
ifeqd |
_G -> if (i = 0) _z1 (_S1 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) = if (i = 0) _z2 (_S2 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) |
8 |
1, 7 |
sbneqd |
_G ->
N[size (Dom f) / i] if (i = 0) _z1 (_S1 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) =
N[size (Dom f) / i] if (i = 0) _z2 (_S2 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) |
9 |
8 |
lameqd |
_G ->
\ f, N[size (Dom f) / i] if (i = 0) _z1 (_S1 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) ==
\ f, N[size (Dom f) / i] if (i = 0) _z2 (_S2 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1))) |
10 |
|
hyp _nh |
_G -> _n1 = _n2 |
11 |
9, 10 |
sreceqd |
_G ->
srec (\ f, N[size (Dom f) / i] if (i = 0) _z1 (_S1 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1)))) _n1 =
srec (\ f, N[size (Dom f) / i] if (i = 0) _z2 (_S2 @ (fst (i - 1), snd (i - 1), f @ snd (i - 1)))) _n2 |
12 |
11 |
conv lrec |
_G -> lrec _z1 _S1 _n1 = lrec _z2 _S2 _n2 |
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_set
(elab,
ax_8),
axs_the
(theid,
the0),
axs_peano
(peano2,
addeq,
muleq)