Step
*
1
2
1
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. [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)))
BY
{ (UseWitness ⌈if null(hyps) then λx,y. (g y) else λx,y. (g <y, x>) fi ⌉⋅
   THEN D 1
   THEN All (\h. RepUR ``mFOL-sequent-abstract FOSatWith`` h)⋅
   THEN (All (Fold `FOSatWith`) THEN Auto)⋅)⋅ }
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.  [Dom]  :  Type
11.  [S]  :  FOStruct(Dom)
12.  a  :  FOAssignment(Dom)@i
13.  g  :  if  null(map(\mlambda{}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))
          \mtimes{}  tuple-type(map(\mlambda{}h.Dom,S,a  |=  mFOL-abstract(h);hyps))
fi    {}\mrightarrow{}  Dom,S,a  |=  mFOL-abstract(mFOconnect-right(concl))
\mvdash{}  tuple-type(map(\mlambda{}h.Dom,S,a  |=  mFOL-abstract(h);hyps))
{}\mrightarrow{}  (Dom,S,a  |=  mFOL-abstract(mFOconnect-left(concl))
      {}\mRightarrow{}  Dom,S,a  |=  mFOL-abstract(mFOconnect-right(concl)))
By
(UseWitness  \mkleeneopen{}if  null(hyps)  then  \mlambda{}x,y.  (g  y)  else  \mlambda{}x,y.  (g  <y,  x>)  fi  \mkleeneclose{}\mcdot{}
  THEN  D  1
  THEN  All  (\mbackslash{}h.  RepUR  ``mFOL-sequent-abstract  FOSatWith``  h)\mcdot{}
  THEN  (All  (Fold  `FOSatWith`)  THEN  Auto)\mcdot{})\mcdot{}
Home
Index