Step
*
1
9
1
1
of Lemma
mFOL-proveable-evidence
1. hyps : mFOL() List@i
2. concl : mFOL()@i
3. subgoals : mFOL-sequent() List@i
4. hypnum : ℕ@i
5. hypnum < ||hyps||
6. ↑mFOconnect?(hyps[hypnum])
7. mFOconnect-knd(hyps[hypnum]) = "or" ∈ Atom
8. mFOL-sequent-evidence(<[mFOconnect-left(hyps[hypnum]) / hyps], concl>)
9. mFOL-sequent-evidence(<[mFOconnect-right(hyps[hypnum]) / hyps], concl>)
10. hyps[hypnum] = mFOconnect-left(hyps[hypnum]) ∨ mFOconnect-right(hyps[hypnum]) ∈ mFOL()
⊢ mFOL-sequent-evidence(<hyps, concl>)
BY
{ (D 0
   THEN Auto
   THEN (Assert Dom,S,a |= mFOL-sequent-abstract(<[mFOconnect-left(hyps[hypnum]) / hyps], concl>) BY
               (Auto THEN All (RepUR ``mFOL-sequent-evidence mFO-uniform-evidence``) THEN BackThruSomeHyp))
   THEN Thin (-7)
   THEN RenameVar `f' (-1)
   THEN (Assert Dom,S,a |= mFOL-sequent-abstract(<[mFOconnect-right(hyps[hypnum]) / hyps], concl>) BY
               (Auto THEN All (RepUR ``mFOL-sequent-evidence mFO-uniform-evidence``) THEN BackThruSomeHyp))
   THEN Thin (-7)
   THEN RenameVar `g' (-1)
   THEN All (Unfolds ``mFOL-sequent-abstract FOSatWith``)
   THEN All PrimReduce)⋅ }
1
1. hyps : mFOL() List@i
2. concl : mFOL()@i
3. subgoals : mFOL-sequent() List@i
4. hypnum : ℕ@i
5. hypnum < ||hyps||
6. ↑mFOconnect?(hyps[hypnum])
7. mFOconnect-knd(hyps[hypnum]) = "or" ∈ Atom
8. hyps[hypnum] = mFOconnect-left(hyps[hypnum]) ∨ mFOconnect-right(hyps[hypnum]) ∈ mFOL()
9. [Dom] : Type
10. [S] : FOStruct(Dom)
11. a : FOAssignment(Dom)@i
12. f : tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);[mFOconnect-left(hyps[hypnum]) / hyps]))
─→ Dom,S,a |= mFOL-abstract(concl)
13. g : tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);[mFOconnect-right(hyps[hypnum]) / hyps]))
─→ Dom,S,a |= mFOL-abstract(concl)
⊢ tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);hyps)) ─→ Dom,S,a |= mFOL-abstract(concl)
Latex:
1.  hyps  :  mFOL()  List@i
2.  concl  :  mFOL()@i
3.  subgoals  :  mFOL-sequent()  List@i
4.  hypnum  :  \mBbbN{}@i
5.  hypnum  <  ||hyps||
6.  \muparrow{}mFOconnect?(hyps[hypnum])
7.  mFOconnect-knd(hyps[hypnum])  =  "or"
8.  mFOL-sequent-evidence(<[mFOconnect-left(hyps[hypnum])  /  hyps],  concl>)
9.  mFOL-sequent-evidence(<[mFOconnect-right(hyps[hypnum])  /  hyps],  concl>)
10.  hyps[hypnum]  =  mFOconnect-left(hyps[hypnum])  \mvee{}  mFOconnect-right(hyps[hypnum])
\mvdash{}  mFOL-sequent-evidence(<hyps,  concl>)
By
(D  0
  THEN  Auto
  THEN  (Assert  Dom,S,a  |=  mFOL-sequent-abstract(<[mFOconnect-left(hyps[hypnum])  /  hyps],  concl>)  BY
                          (Auto
                            THEN  All  (RepUR  ``mFOL-sequent-evidence  mFO-uniform-evidence``)
                            THEN  BackThruSomeHyp))
  THEN  Thin  (-7)
  THEN  RenameVar  `f'  (-1)
  THEN  (Assert  Dom,S,a  |=  mFOL-sequent-abstract(<[mFOconnect-right(hyps[hypnum])  /  hyps],  concl>)  BY
                          (Auto
                            THEN  All  (RepUR  ``mFOL-sequent-evidence  mFO-uniform-evidence``)
                            THEN  BackThruSomeHyp))
  THEN  Thin  (-7)
  THEN  RenameVar  `g'  (-1)
  THEN  All  (Unfolds  ``mFOL-sequent-abstract  FOSatWith``)
  THEN  All  PrimReduce)\mcdot{}
Home
Index