Step
*
of Lemma
prec-definition
∀[P:Type]. ∀[a:Atom ⟶ P ⟶ ((P + P + Type) List)]. ∀[A:P ⟶ Type]. ∀[R:i:P ⟶ prec(lbl,p.a[lbl;p];i) ⟶ A[i] ⟶ ℙ].
  ((∀i:P. ∀x:prec(lbl,p.a[lbl;p];i).
      ((∀j:P. ∀z:{z:prec(lbl,p.a[lbl;p];j)| prec_sub+(P;lbl,p.a[lbl;p]) <j, z> <i, x>} .  (∃a:A[j] [R[j;z;a]])) 
⇒ (∃a:A\000C[i] [R[i;x;a]])))
  
⇒ (∀i:P. ∀x:prec(lbl,p.a[lbl;p];i).  (∃a:A[i] [R[i;x;a]])))
BY
{ (InstLemma `prec-induction-ext` []
   THEN RepeatFor 2 (ParallelLast')
   THEN Auto
   THEN InstHyp [⌜λ2i x.∃a:A[i] [R[i;x;a]]⌝] 3⋅
   THEN Auto) }
Latex:
Latex:
\mforall{}[P:Type].  \mforall{}[a:Atom  {}\mrightarrow{}  P  {}\mrightarrow{}  ((P  +  P  +  Type)  List)].  \mforall{}[A:P  {}\mrightarrow{}  Type].  \mforall{}[R:i:P
                                                                                                                                                {}\mrightarrow{}  prec(lbl,p.a[lbl;p];i)
                                                                                                                                                {}\mrightarrow{}  A[i]
                                                                                                                                                {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}i:P.  \mforall{}x:prec(lbl,p.a[lbl;p];i).
            ((\mforall{}j:P.  \mforall{}z:\{z:prec(lbl,p.a[lbl;p];j)|  prec\_sub+(P;lbl,p.a[lbl;p])  <j,  z>  <i,  x>\}  .    (\mexists{}a:A[j]  [\000CR[j;z;a]]))
            {}\mRightarrow{}  (\mexists{}a:A[i]  [R[i;x;a]])))
    {}\mRightarrow{}  (\mforall{}i:P.  \mforall{}x:prec(lbl,p.a[lbl;p];i).    (\mexists{}a:A[i]  [R[i;x;a]])))
By
Latex:
(InstLemma  `prec-induction-ext`  []
  THEN  RepeatFor  2  (ParallelLast')
  THEN  Auto
  THEN  InstHyp  [\mkleeneopen{}\mlambda{}\msubtwo{}i  x.\mexists{}a:A[i]  [R[i;x;a]]\mkleeneclose{}]  3\mcdot{}
  THEN  Auto)
Home
Index