Step
*
1
1
of Lemma
mFOL-subst-abstract
1. Dom : Type
2. S : FOStruct(Dom)
3. fmla : mFOL()
4. x : ℤ
5. y : ℤ
6. v : mFOL()
7. mFOL-freevars(v) = mFOL-freevars(fmla) ∈ (ℤ List)
8. mFOL-abstract(v) = mFOL-abstract(fmla) ∈ AbstractFOFormula(mFOL-freevars(fmla))
9. ¬(x ∈ mFOL-boundvars(v))
10. a : FOAssignment(mFOL-freevars(mFOL-rename(v;y;x)),Dom)
11. x1 : {z:ℤ| (z ∈ mFOL-freevars(v))} 
⊢ (a[y := a x] x1) = (if y ∈b mFOL-freevars(v) then a[y := a x] else a fi  x1) ∈ Dom
BY
{ (Unfold `FOAssignment` -2
   THEN (D -1 THEN RepUR ``update-assignment`` 0)
   THEN (BoolCase ⌜y ∈b mFOL-freevars(v)⌝⋅ THENA Auto)
   THEN (BoolCase ⌜(x1 =z y)⌝⋅ THENA Auto)
   THEN (((EqCD THEN Fold `member` 0) THEN Try (Declaration) THEN MemTypeCD THEN Auto)
   ORELSE (Eliminate ⌜x1⌝⋅ THEN Auto)
   )
   THEN BLemma `mFOL-freevars-of-rename`
   THEN Auto) }
Latex:
Latex:
1.  Dom  :  Type
2.  S  :  FOStruct(Dom)
3.  fmla  :  mFOL()
4.  x  :  \mBbbZ{}
5.  y  :  \mBbbZ{}
6.  v  :  mFOL()
7.  mFOL-freevars(v)  =  mFOL-freevars(fmla)
8.  mFOL-abstract(v)  =  mFOL-abstract(fmla)
9.  \mneg{}(x  \mmember{}  mFOL-boundvars(v))
10.  a  :  FOAssignment(mFOL-freevars(mFOL-rename(v;y;x)),Dom)
11.  x1  :  \{z:\mBbbZ{}|  (z  \mmember{}  mFOL-freevars(v))\} 
\mvdash{}  (a[y  :=  a  x]  x1)  =  (if  y  \mmember{}\msubb{}  mFOL-freevars(v)  then  a[y  :=  a  x]  else  a  fi    x1)
By
Latex:
(Unfold  `FOAssignment`  -2
  THEN  (D  -1  THEN  RepUR  ``update-assignment``  0)
  THEN  (BoolCase  \mkleeneopen{}y  \mmember{}\msubb{}  mFOL-freevars(v)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (BoolCase  \mkleeneopen{}(x1  =\msubz{}  y)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (((EqCD  THEN  Fold  `member`  0)  THEN  Try  (Declaration)  THEN  MemTypeCD  THEN  Auto)
  ORELSE  (Eliminate  \mkleeneopen{}x1\mkleeneclose{}\mcdot{}  THEN  Auto)
  )
  THEN  BLemma  `mFOL-freevars-of-rename`
  THEN  Auto)
Home
Index