Step * 1 1 of Lemma mFOL-subst-abstract


1. Dom Type
2. FOStruct(Dom)
3. fmla mFOL()
4. : ℤ
5. : ℤ
6. 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. FOAssignment(mFOL-freevars(mFOL-rename(v;y;x)),Dom)
11. x1 {z:ℤ(z ∈ mFOL-freevars(v))} 
⊢ (a[y := x] x1) (if y ∈b mFOL-freevars(v) then a[y := x] else 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