Step
*
1
3
1
1
of Lemma
mFOL-proveable-evidence
1. hyps : mFOL() List@i
2. var : ℤ@i
3. (∀h∈hyps.¬(var ∈ mFOL-freevars(h)))
4. body : mFOL()@i
5. x : ℤ@i
6. mFOL-sequent-evidence(<hyps, body[var/x]>)@i'
7. ¬(var ∈ mFOL-freevars(∀x;body)))@i
⊢ mFOL-sequent-evidence(<hyps, ∀x;body)>)
BY
{ ((D 0 THEN Auto)
   THEN Unfold `mFOL-sequent-abstract` 0
   THEN RepUR ``FOSatWith`` 0
   THEN RW (AddrC [2] (UnfoldC `mFOL-abstract`)) 0
   THEN Reduce 0
   THEN Fold `mFOL-abstract` 0
   THEN RepUR ``FOQuantifier`` 0
   THEN Fold `FOSatWith` 0
   THEN Auto
   THEN RenameVar `z' 2
   THEN (InstLemma `mFOL-subst-abstract` [⌈Dom⌉;⌈S⌉;⌈a[z := v]⌉;⌈body⌉;⌈z⌉;⌈x⌉]⋅ THENA Auto)
   THEN Subst ⌈a[z := v] z ~ v⌉ (-1)⋅
   THEN Try (Complete ((RepUR ``update-assignment`` 0 THEN AutoSplit ⋅ THEN Auto)))) }
1
1. hyps : mFOL() List@i
2. z : ℤ@i
3. (∀h∈hyps.¬(z ∈ mFOL-freevars(h)))
4. body : mFOL()@i
5. x : ℤ@i
6. mFOL-sequent-evidence(<hyps, body[z/x]>)@i'
7. ¬(z ∈ mFOL-freevars(∀x;body)))@i
8. [Dom] : Type
9. [S] : FOStruct(Dom)
10. a : FOAssignment(Dom)@i
11. tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);hyps))@i
12. v : Dom@i
13. Dom,S,a[z := v] |= mFOL-abstract(body[z/x]) = Dom,S,a[z := v][x := v] |= mFOL-abstract(body) ∈ ℙ
⊢ Dom,S,a[x := v] |= mFOL-abstract(body)
Latex:
1.  hyps  :  mFOL()  List@i
2.  var  :  \mBbbZ{}@i
3.  (\mforall{}h\mmember{}hyps.\mneg{}(var  \mmember{}  mFOL-freevars(h)))
4.  body  :  mFOL()@i
5.  x  :  \mBbbZ{}@i
6.  mFOL-sequent-evidence(<hyps,  body[var/x]>)@i'
7.  \mneg{}(var  \mmember{}  mFOL-freevars(\mforall{}x;body)))@i
\mvdash{}  mFOL-sequent-evidence(<hyps,  \mforall{}x;body)>)
By
((D  0  THEN  Auto)
  THEN  Unfold  `mFOL-sequent-abstract`  0
  THEN  RepUR  ``FOSatWith``  0
  THEN  RW  (AddrC  [2]  (UnfoldC  `mFOL-abstract`))  0
  THEN  Reduce  0
  THEN  Fold  `mFOL-abstract`  0
  THEN  RepUR  ``FOQuantifier``  0
  THEN  Fold  `FOSatWith`  0
  THEN  Auto
  THEN  RenameVar  `z'  2
  THEN  (InstLemma  `mFOL-subst-abstract`  [\mkleeneopen{}Dom\mkleeneclose{};\mkleeneopen{}S\mkleeneclose{};\mkleeneopen{}a[z  :=  v]\mkleeneclose{};\mkleeneopen{}body\mkleeneclose{};\mkleeneopen{}z\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  Subst  \mkleeneopen{}a[z  :=  v]  z  \msim{}  v\mkleeneclose{}  (-1)\mcdot{}
  THEN  Try  (Complete  ((RepUR  ``update-assignment``  0  THEN  AutoSplit  \mcdot{}  THEN  Auto))))
Home
Index