Step
*
of Lemma
l_tree-definition
∀[L,T,A:Type]. ∀[R:A ─→ l_tree(L;T) ─→ ℙ].
  ((∀val:L. {x:A| R[x;l_tree_leaf(val)]} )
  
⇒ (∀val:T. ∀left_subtree,right_subtree:l_tree(L;T).
        ({x:A| R[x;left_subtree]} 
        
⇒ {x:A| R[x;right_subtree]} 
        
⇒ {x:A| R[x;l_tree_node(val;left_subtree;right_subtree)]} ))
  
⇒ {∀v:l_tree(L;T). {x:A| R[x;v]} })
BY
{ ProveDatatypeDefinition `l_tree-induction` }
Latex:
\mforall{}[L,T,A:Type].  \mforall{}[R:A  {}\mrightarrow{}  l\_tree(L;T)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}val:L.  \{x:A|  R[x;l\_tree\_leaf(val)]\}  )
    {}\mRightarrow{}  (\mforall{}val:T.  \mforall{}left$_{subtree}$,right$_{subtree}$:l\_tree(L;T\000C).
                (\{x:A|  R[x;left$_{subtree}$]\} 
                {}\mRightarrow{}  \{x:A|  R[x;right$_{subtree}$]\} 
                {}\mRightarrow{}  \{x:A|  R[x;l\_tree\_node(val;left$_{subtree}$;right$_{subtre\000Ce}$)]\}  ))
    {}\mRightarrow{}  \{\mforall{}v:l\_tree(L;T).  \{x:A|  R[x;v]\}  \})
By
ProveDatatypeDefinition  `l\_tree-induction`
Home
Index