Step
*
of Lemma
prec-sq
∀[P:Type]. ∀[a:Atom ⟶ P ⟶ ((P + P + Type) List)]. ∀[i:P]. ∀[x:prec(lbl,p.a[lbl;p];i)].
  (x ~ mk-prec(prec-label(x);prec-tuple(x)))
BY
{ (InstLemma `prec-ext` []
   THEN RepeatFor 3 (ParallelLast')
   THEN (D 0 THENA Auto)
   THEN (GenConcl ⌜x
                   = X
                   ∈ (labl:{lbl:Atom| 0 < ||a[lbl;i]||}  × tuple-type(map(λx.case x
                                                                       of inl(y) =>
                                                                       case y
                                                                        of inl(p) =>
                                                                        prec(lbl,p.a[lbl;p];p)
                                                                        | inr(p) =>
                                                                        prec(lbl,p.a[lbl;p];p) List
                                                                       | inr(E) =>
                                                                       E;a[labl;i])))⌝⋅
         THENA Auto
         )
   THEN D -2
   THEN RepUR ``mk-prec prec-label prec-tuple`` 0
   THEN Auto) }
Latex:
Latex:
\mforall{}[P:Type].  \mforall{}[a:Atom  {}\mrightarrow{}  P  {}\mrightarrow{}  ((P  +  P  +  Type)  List)].  \mforall{}[i:P].  \mforall{}[x:prec(lbl,p.a[lbl;p];i)].
    (x  \msim{}  mk-prec(prec-label(x);prec-tuple(x)))
By
Latex:
(InstLemma  `prec-ext`  []
  THEN  RepeatFor  3  (ParallelLast')
  THEN  (D  0  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}x  =  X\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  RepUR  ``mk-prec  prec-label  prec-tuple``  0
  THEN  Auto)
Home
Index