Step
*
of Lemma
FOL-subst-abstract
∀[Dom:Type]. ∀[S:FOStruct+{i:l}(Dom)]. ∀[fmla:mFOL()]. ∀[x,y:ℤ]. ∀[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
  (Dom,S,a +|= FOL-abstract(fmla[x/y]) = Dom,S,a[y := a x] +|= FOL-abstract(fmla) ∈ ℙ)
BY
{ (Auto
   THEN MoveToConcl (-1)
   THEN Unfold `FOL-subst` 0
   THEN (GenConclTerm ⌜FOL-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+{i:l}(Dom)
3. fmla : mFOL()
4. x : ℤ
5. y : ℤ
6. v : mFOL()
7. mFOL-freevars(v) = mFOL-freevars(fmla) ∈ (ℤ List)
8. FOL-abstract(v) = FOL-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+{i:l}(Dom)
3. fmla : mFOL()
4. x : ℤ
5. y : ℤ
6. v : mFOL()
7. mFOL-freevars(v) = mFOL-freevars(fmla) ∈ (ℤ List)
8. FOL-abstract(v) = FOL-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 +|= FOL-abstract(mFOL-rename(v;y;x)) = Dom,S,a[y := a x] +|= FOL-abstract(fmla) ∈ ℙ
Latex:
Latex:
\mforall{}[Dom:Type].  \mforall{}[S:FOStruct+\{i:l\}(Dom)].  \mforall{}[fmla:mFOL()].  \mforall{}[x,y:\mBbbZ{}].
\mforall{}[a:FOAssignment(mFOL-freevars(fmla[x/y]),Dom)].
    (Dom,S,a  +|=  FOL-abstract(fmla[x/y])  =  Dom,S,a[y  :=  a  x]  +|=  FOL-abstract(fmla))
By
Latex:
(Auto
  THEN  MoveToConcl  (-1)
  THEN  Unfold  `FOL-subst`  0
  THEN  (GenConclTerm  \mkleeneopen{}FOL-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