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. : ℤ@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 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] v⌉ (-1)⋅
   THEN Try (Complete ((RepUR ``update-assignment`` THEN AutoSplit ⋅ THEN Auto)))) }

1
1. hyps mFOL() List@i
2. : ℤ@i
3. (∀h∈hyps.¬(z ∈ mFOL-freevars(h)))
4. body mFOL()@i
5. : ℤ@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. FOAssignment(Dom)@i
11. tuple-type(map(λh.Dom,S,a |= mFOL-abstract(h);hyps))@i
12. 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