Theorem ljoinS | index | src |

pub theorem ljoinS (l L: nat): $ ljoin (l : L) = l ++ ljoin L $;
StepHypRefExpression
1 eqtr
ljoin (l : L) = (\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, ljoin L) ->
  (\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, ljoin L) = l ++ ljoin L ->
  ljoin (l : L) = l ++ ljoin L
2 lrecS
lrec 0 (\\ a1, \\ a2, \ a3, a1 ++ a3) (l : L) = (\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, lrec 0 (\\ a1, \\ a2, \ a3, a1 ++ a3) L)
3 2 conv ljoin
ljoin (l : L) = (\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, ljoin L)
4 1, 3 ax_mp
(\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, ljoin L) = l ++ ljoin L -> ljoin (l : L) = l ++ ljoin L
5 anll
a1 = l /\ a2 = L /\ a3 = ljoin L -> a1 = l
6 anr
a1 = l /\ a2 = L /\ a3 = ljoin L -> a3 = ljoin L
7 5, 6 appendeqd
a1 = l /\ a2 = L /\ a3 = ljoin L -> a1 ++ a3 = l ++ ljoin L
8 7 applamed
a1 = l /\ a2 = L -> (\ a3, a1 ++ a3) @ ljoin L = l ++ ljoin L
9 8 appslamed
a1 = l -> (\\ a2, \ a3, a1 ++ a3) @ (L, ljoin L) = l ++ ljoin L
10 9 appslame
(\\ a1, \\ a2, \ a3, a1 ++ a3) @ (l, L, ljoin L) = l ++ ljoin L
11 4, 10 ax_mp
ljoin (l : L) = l ++ ljoin L

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 (peano1, peano2, peano5, addeq, muleq, add0, addS, mul0, mulS)