Theorem revS | index | src |

theorem revS (a l: nat): $ rev (a : l) = rev l |> a $;
StepHypRefExpression
1 eqtr
rev (a : l) = (\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, rev l) -> (\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, rev l) = rev l |> a -> rev (a : l) = rev l |> a
2 lrecS
lrec 0 (\\ a1, \\ a2, \ a3, a3 |> a1) (a : l) = (\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, lrec 0 (\\ a1, \\ a2, \ a3, a3 |> a1) l)
3 2 conv rev
rev (a : l) = (\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, rev l)
4 1, 3 ax_mp
(\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, rev l) = rev l |> a -> rev (a : l) = rev l |> a
5 anr
a1 = a /\ a2 = l /\ a3 = rev l -> a3 = rev l
6 anll
a1 = a /\ a2 = l /\ a3 = rev l -> a1 = a
7 5, 6 snoceqd
a1 = a /\ a2 = l /\ a3 = rev l -> a3 |> a1 = rev l |> a
8 7 applamed
a1 = a /\ a2 = l -> (\ a3, a3 |> a1) @ rev l = rev l |> a
9 8 appslamed
a1 = a -> (\\ a2, \ a3, a3 |> a1) @ (l, rev l) = rev l |> a
10 9 appslame
(\\ a1, \\ a2, \ a3, a3 |> a1) @ (a, l, rev l) = rev l |> a
11 4, 10 ax_mp
rev (a : l) = rev l |> a

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)