Theorem lreceqd | index | src |

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 $;
StepHypRefExpression
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)