Step
*
of Lemma
pi_term-definition
∀[A:Type]. ∀[R:A ─→ pi_term() ─→ ℙ].
  ({x:A| R[x;pizero()]} 
  
⇒ (∀pre:pi_prefix(). ∀body:pi_term().  ({x:A| R[x;body]}  
⇒ {x:A| R[x;picomm(pre;body)]} ))
  
⇒ (∀left,right:pi_term().  ({x:A| R[x;left]}  
⇒ {x:A| R[x;right]}  
⇒ {x:A| R[x;pioption(left;right)]} ))
  
⇒ (∀left,right:pi_term().  ({x:A| R[x;left]}  
⇒ {x:A| R[x;right]}  
⇒ {x:A| R[x;pipar(left;right)]} ))
  
⇒ (∀body:pi_term(). ({x:A| R[x;body]}  
⇒ {x:A| R[x;pirep(body)]} ))
  
⇒ (∀name:Name. ∀body:pi_term().  ({x:A| R[x;body]}  
⇒ {x:A| R[x;pinew(name;body)]} ))
  
⇒ {∀v:pi_term(). {x:A| R[x;v]} })
BY
{ ProveDatatypeDefinition `pi_term-induction` }
Latex:
Latex:
\mforall{}[A:Type].  \mforall{}[R:A  {}\mrightarrow{}  pi\_term()  {}\mrightarrow{}  \mBbbP{}].
    (\{x:A|  R[x;pizero()]\} 
    {}\mRightarrow{}  (\mforall{}pre:pi\_prefix().  \mforall{}body:pi\_term().    (\{x:A|  R[x;body]\}    {}\mRightarrow{}  \{x:A|  R[x;picomm(pre;body)]\}  ))
    {}\mRightarrow{}  (\mforall{}left,right:pi\_term().
                (\{x:A|  R[x;left]\}    {}\mRightarrow{}  \{x:A|  R[x;right]\}    {}\mRightarrow{}  \{x:A|  R[x;pioption(left;right)]\}  ))
    {}\mRightarrow{}  (\mforall{}left,right:pi\_term().
                (\{x:A|  R[x;left]\}    {}\mRightarrow{}  \{x:A|  R[x;right]\}    {}\mRightarrow{}  \{x:A|  R[x;pipar(left;right)]\}  ))
    {}\mRightarrow{}  (\mforall{}body:pi\_term().  (\{x:A|  R[x;body]\}    {}\mRightarrow{}  \{x:A|  R[x;pirep(body)]\}  ))
    {}\mRightarrow{}  (\mforall{}name:Name.  \mforall{}body:pi\_term().    (\{x:A|  R[x;body]\}    {}\mRightarrow{}  \{x:A|  R[x;pinew(name;body)]\}  ))
    {}\mRightarrow{}  \{\mforall{}v:pi\_term().  \{x:A|  R[x;v]\}  \})
By
Latex:
ProveDatatypeDefinition  `pi\_term-induction`
Home
Index