Step
*
of Lemma
mFOL-subst-abstract
∀[Dom:Type]. ∀[S:FOStruct(Dom)]. ∀[fmla:mFOL()]. ∀[x,y:ℤ]. ∀[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
  (Dom,S,a |= mFOL-abstract(fmla[x/y]) = Dom,S,a[y := a x] |= mFOL-abstract(fmla) ∈ ℙ)
BY
{ (Auto
   THEN MoveToConcl (-1)
   THEN Unfold `mFOL-subst` 0
   THEN (GenConclTerm ⌜mFOL-rename-bound-to-avoid(fmla;[x])⌝⋅ THENA Auto)
   THEN Thin (-1)
   THEN D -1
   THEN (D 0 THENA Auto)
   THEN ExRepD
   THEN (RWO "l_disjoint_singleton2" (-2) THENA Auto)
   THEN Assert ⌜a[y := a x] = if y ∈b mFOL-freevars(v) then a[y := a x] else a fi  ∈ FOAssignment(mFOL-freevars(v),Dom)⌝
   ⋅) }
1
.....assertion..... 
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)
⊢ a[y := a x] = if y ∈b mFOL-freevars(v) then a[y := a x] else a fi  ∈ FOAssignment(mFOL-freevars(v),Dom)
2
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. a[y := a x] = if y ∈b mFOL-freevars(v) then a[y := a x] else a fi  ∈ FOAssignment(mFOL-freevars(v),Dom)
⊢ Dom,S,a |= mFOL-abstract(mFOL-rename(v;y;x)) = Dom,S,a[y := a x] |= mFOL-abstract(fmla) ∈ ℙ
Latex:
Latex:
\mforall{}[Dom:Type].  \mforall{}[S:FOStruct(Dom)].  \mforall{}[fmla:mFOL()].  \mforall{}[x,y:\mBbbZ{}].
\mforall{}[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
    (Dom,S,a  |=  mFOL-abstract(fmla[x/y])  =  Dom,S,a[y  :=  a  x]  |=  mFOL-abstract(fmla))
By
Latex:
(Auto
  THEN  MoveToConcl  (-1)
  THEN  Unfold  `mFOL-subst`  0
  THEN  (GenConclTerm  \mkleeneopen{}mFOL-rename-bound-to-avoid(fmla;[x])\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  Thin  (-1)
  THEN  D  -1
  THEN  (D  0  THENA  Auto)
  THEN  ExRepD
  THEN  (RWO  "l\_disjoint\_singleton2"  (-2)  THENA  Auto)
  THEN  Assert  \mkleeneopen{}a[y  :=  a  x]  =  if  y  \mmember{}\msubb{}  mFOL-freevars(v)  then  a[y  :=  a  x]  else  a  fi  \mkleeneclose{}\mcdot{})
Home
Index