Step
*
of Lemma
aa_data_wrapper-induction
[T:Type]. 
[P:aa_data_wrapper(T) 
 
].
  ((
nd:aa_data_wrapper(T). (P[nd] 
 P[aa_data_wrapnode(nd)]))
  
 (
val:T. P[aa_data_wrapleaf(val)])
  
 {
x:aa_data_wrapper(T). P[x]})
BY
{ DatatypeInductionAux ``aa_data_wrapper aa_data_wrapnode aa_data_wrapleaf`` }
\mforall{}[T:Type].  \mforall{}[P:aa\_data\_wrapper(T)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}nd:aa\_data\_wrapper(T).  (P[nd]  {}\mRightarrow{}  P[aa\_data\_wrapnode(nd)]))
    {}\mRightarrow{}  (\mforall{}val:T.  P[aa\_data\_wrapleaf(val)])
    {}\mRightarrow{}  \{\mforall{}x:aa\_data\_wrapper(T).  P[x]\})
By
DatatypeInductionAux  ``aa\_data\_wrapper  aa\_data\_wrapnode  aa\_data\_wrapleaf``
Home
Index