Step * of Lemma FOLRule-induction-ext

[P:FOLRule() ⟶ ℙ]
  (P[andI]
   P[impI]
   (∀var:ℤP[allI with var])
   (∀var:ℤP[existsI with var])
   (∀left:𝔹P[fRuleorI(left)])
   P[hyp]
   (∀hypnum:ℕP[andE on hypnum])
   (∀hypnum:ℕP[orE on hypnum])
   (∀hypnum:ℕP[impE on hypnum])
   (∀hypnum:ℕ. ∀var:ℤ.  P[allE on hypnum with var])
   (∀hypnum:ℕ. ∀var:ℤ.  P[existsE on hypnum with var])
   (∀hypnum:ℕP[falseE on hypnum])
   {∀v:FOLRule(). P[v]})
BY
((Unfold `guard` THEN Intro)
   THEN UseWitness ⌜λandI,impI,allI,exI,orI,hh,andE,orE,impE,allE,exE,falseE,v. let lbl,v1 
                                                                                in if lbl="andI" then andI
                                                                                   if lbl="impI" then impI
                                                                                   if lbl="allI" then allI v1
                                                                                   if lbl="existsI" then exI v1
                                                                                   if lbl="orI" then orI v1
                                                                                   if lbl="orI" then Ax
                                                                                   if lbl="hyp" then hh
                                                                                   if lbl="andE" then andE v1
                                                                                   if lbl="orE" then orE v1
                                                                                   if lbl="impE" then impE v1
                                                                                   if lbl="allE"
                                                                                     then allE (fst(v1)) (snd(v1))
                                                                                   if lbl="existsE"
                                                                                     then exE (fst(v1)) (snd(v1))
                                                                                   else falseE v1
                                                                                   fi ⌝⋅
   THEN RepeatFor 13 ((MemCD THENL [Id; Auto]))
   THEN -1
   THEN Reduce 0
   THEN Auto) }


Latex:


Latex:
\mforall{}[P:FOLRule()  {}\mrightarrow{}  \mBbbP{}]
    (P[andI]
    {}\mRightarrow{}  P[impI]
    {}\mRightarrow{}  (\mforall{}var:\mBbbZ{}.  P[allI  with  var])
    {}\mRightarrow{}  (\mforall{}var:\mBbbZ{}.  P[existsI  with  var])
    {}\mRightarrow{}  (\mforall{}left:\mBbbB{}.  P[fRuleorI(left)])
    {}\mRightarrow{}  P[hyp]
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  P[andE  on  hypnum])
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  P[orE  on  hypnum])
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  P[impE  on  hypnum])
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  \mforall{}var:\mBbbZ{}.    P[allE  on  hypnum  with  var])
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  \mforall{}var:\mBbbZ{}.    P[existsE  on  hypnum  with  var])
    {}\mRightarrow{}  (\mforall{}hypnum:\mBbbN{}.  P[falseE  on  hypnum])
    {}\mRightarrow{}  \{\mforall{}v:FOLRule().  P[v]\})


By


Latex:
((Unfold  `guard`  0  THEN  Intro)
  THEN  UseWitness  \mkleeneopen{}\mlambda{}andI,impI,allI,exI,orI,hh,andE,orE,impE,allE,exE,falseE,v.  let  lbl,v1  =  v 
                                                                                                                                                            in  if  lbl="andI"
                                                                                                                                                                      then  andI
                                                                                                                                                                  if  lbl="impI"
                                                                                                                                                                      then  impI
                                                                                                                                                                  if  lbl="allI"
                                                                                                                                                                      then  allI  v1
                                                                                                                                                                  if  lbl="existsI"
                                                                                                                                                                      then  exI  v1
                                                                                                                                                                  if  lbl="orI"
                                                                                                                                                                      then  orI  v1
                                                                                                                                                                  if  lbl="orI"
                                                                                                                                                                      then  Ax
                                                                                                                                                                  if  lbl="hyp"
                                                                                                                                                                      then  hh
                                                                                                                                                                  if  lbl="andE"
                                                                                                                                                                      then  andE  v1
                                                                                                                                                                  if  lbl="orE"
                                                                                                                                                                      then  orE  v1
                                                                                                                                                                  if  lbl="impE"
                                                                                                                                                                      then  impE  v1
                                                                                                                                                                  if  lbl="allE"
                                                                                                                                                                      then  allE 
                                                                                                                                                                                (fst(v1)) 
                                                                                                                                                                                (snd(v1))
                                                                                                                                                                  if  lbl="existsE"
                                                                                                                                                                      then  exE 
                                                                                                                                                                                (fst(v1)) 
                                                                                                                                                                                (snd(v1))
                                                                                                                                                                  else  falseE  v1
                                                                                                                                                                  fi  \mkleeneclose{}\mcdot{}
  THEN  RepeatFor  13  ((MemCD  THENL  [Id;  Auto]))
  THEN  D  -1
  THEN  Reduce  0
  THEN  Auto)




Home Index