Step
*
1
2
of Lemma
mFOL-proveable-evidence
1. hyps : mFOL() List@i
2. concl : mFOL()@i
3. subgoals : mFOL-sequent() List@i
4. subproofs : ℕ||subgoals|| ─→ proof-tree(mFOL-sequent();mFOLRule();λsr.mFOLeffect(sr))@i'
5. ∀b:ℕ||subgoals||. ∀s:mFOL-sequent().
     (correct_proof(mFOL-sequent();λsr.mFOLeffect(sr);s;subproofs b) 
⇒ mFOL-sequent-evidence(s))@i'
6. ∀i:ℕ||subgoals||. correct_proof(mFOL-sequent();λsr.mFOLeffect(sr);subgoals[i];subproofs i)@i'
7. ↑mFOconnect?(concl)
8. mFOconnect-knd(concl) = "imp" ∈ Atom
9. [<[mFOconnect-left(concl) / hyps], mFOconnect-right(concl)>] = subgoals ∈ (mFOL-sequent() List)
10. mFOL-sequent-evidence(<[mFOconnect-left(concl) / hyps], mFOconnect-right(concl)>)
⊢ mFOL-sequent-evidence(<hyps, concl>)
BY
{ ((Subst ⌈concl = mFOconnect-left(concl) 
⇒ mFOconnect-right(concl) ∈ mFOL()⌉ 0⋅
    THENA (Auto
           THEN MoveToConcl 2
           THEN BLemmaUp `mFOL-induction`⋅
           THEN Reduce 0
           THEN Auto
           THEN Try ((Fold `AbstractFOFormula` 0 THEN Auto))
           THEN Unfold `mFOL-sequent` 0
           THEN Auto)
    )
   THEN D 0
   THEN Auto
   THEN (Assert Dom,S,a |= mFOL-sequent-abstract(<[mFOconnect-left(concl) / hyps], mFOconnect-right(concl)>) BY
               (Auto THEN All (RepUR ``mFOL-sequent-evidence mFO-uniform-evidence``) THEN BackThruSomeHyp))
   THEN Thin (-5)
   THEN RenameVar `g' (-1)
   THEN (All (RepUR ``mFOL-sequent-abstract FOSatWith``)
         THEN RepUR ``mFOL-abstract`` 0
         THEN Fold `mFOL-abstract` 0
         THEN RepUR ``FOConnective FOSatWith let`` 0
         THEN All (Fold `FOSatWith`))⋅)⋅ }
1
1. hyps : mFOL() List@i
2. concl : mFOL()@i
3. subgoals : mFOL-sequent() List@i
4. subproofs : ℕ||subgoals|| ─→ proof-tree(mFOL-sequent();mFOLRule();λsr.mFOLeffect(sr))@i'
5. ∀b:ℕ||subgoals||. ∀s:mFOL-sequent().
     (correct_proof(mFOL-sequent();λsr.mFOLeffect(sr);s;subproofs b) 
⇒ mFOL-sequent-evidence(s))@i'
6. ∀i:ℕ||subgoals||. correct_proof(mFOL-sequent();λsr.mFOLeffect(sr);subgoals[i];subproofs i)@i'
7. ↑mFOconnect?(concl)
8. mFOconnect-knd(concl) = "imp" ∈ Atom
9. [<[mFOconnect-left(concl) / hyps], mFOconnect-right(concl)>] = subgoals ∈ (mFOL-sequent() List)
10. [Dom] : Type
11. [S] : FOStruct(Dom)
12. a : FOAssignment(Dom)@i
13. g : if null(map(λh.Dom,S,a |= mFOL-abstract(h);hyps))
then Dom,S,a |= mFOL-abstract(mFOconnect-left(concl))
else Dom,S,a |= mFOL-abstract(mFOconnect-left(concl)) × tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);hyps))
fi  ─→ Dom,S,a |= mFOL-abstract(mFOconnect-right(concl))
⊢ tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);hyps)) ─→ (Dom,S,a |= mFOL-abstract(mFOconnect-left(concl))
                                                          
⇒ Dom,S,a |= mFOL-abstract(mFOconnect-right(concl)))
Latex:
1.  hyps  :  mFOL()  List@i
2.  concl  :  mFOL()@i
3.  subgoals  :  mFOL-sequent()  List@i
4.  subproofs  :  \mBbbN{}||subgoals||  {}\mrightarrow{}  proof-tree(mFOL-sequent();mFOLRule();\mlambda{}sr.mFOLeffect(sr))@i'
5.  \mforall{}b:\mBbbN{}||subgoals||.  \mforall{}s:mFOL-sequent().
          (correct\_proof(mFOL-sequent();\mlambda{}sr.mFOLeffect(sr);s;subproofs  b)  {}\mRightarrow{}  mFOL-sequent-evidence(s))@i'
6.  \mforall{}i:\mBbbN{}||subgoals||.  correct\_proof(mFOL-sequent();\mlambda{}sr.mFOLeffect(sr);subgoals[i];subproofs  i)@i'
7.  \muparrow{}mFOconnect?(concl)
8.  mFOconnect-knd(concl)  =  "imp"
9.  [<[mFOconnect-left(concl)  /  hyps],  mFOconnect-right(concl)>]  =  subgoals
10.  mFOL-sequent-evidence(<[mFOconnect-left(concl)  /  hyps],  mFOconnect-right(concl)>)
\mvdash{}  mFOL-sequent-evidence(<hyps,  concl>)
By
((Subst  \mkleeneopen{}concl  =  mFOconnect-left(concl)  {}\mRightarrow{}  mFOconnect-right(concl)\mkleeneclose{}  0\mcdot{}
    THENA  (Auto
                  THEN  MoveToConcl  2
                  THEN  BLemmaUp  `mFOL-induction`\mcdot{}
                  THEN  Reduce  0
                  THEN  Auto
                  THEN  Try  ((Fold  `AbstractFOFormula`  0  THEN  Auto))
                  THEN  Unfold  `mFOL-sequent`  0
                  THEN  Auto)
    )
  THEN  D  0
  THEN  Auto
  THEN  (Assert  Dom,S,a  |=  mFOL-sequent-abstract(<[mFOconnect-left(concl)  /  hyps]
                                                                                              ,  mFOconnect-right(concl)
                                                                                              >)  BY
                          (Auto
                            THEN  All  (RepUR  ``mFOL-sequent-evidence  mFO-uniform-evidence``)
                            THEN  BackThruSomeHyp))
  THEN  Thin  (-5)
  THEN  RenameVar  `g'  (-1)
  THEN  (All  (RepUR  ``mFOL-sequent-abstract  FOSatWith``)
              THEN  RepUR  ``mFOL-abstract``  0
              THEN  Fold  `mFOL-abstract`  0
              THEN  RepUR  ``FOConnective  FOSatWith  let``  0
              THEN  All  (Fold  `FOSatWith`))\mcdot{})\mcdot{}
Home
Index