Step
*
2
1
of Lemma
alpha-avoid-binders-disjoint
1. opr : Type
2. L : varname() List
3. ¬(nullvar() ∈ L)
4. t : term(opr)
5. x : {v:varname()| (v ∈ all-vars(t))} 
6. ((alist-map(VarDeq;alpha-rename-alist(t;L)) x) = nullvar() ∈ varname()) 
⇒ (x = nullvar() ∈ varname())
7. x1 : varname()
8. apply-alist(VarDeq;alpha-rename-alist(t;L);x) = (inl x1) ∈ (varname()?)
⊢ ¬(x1 ∈ L)
BY
{ ((FLemma `apply-alist-inl` [-1] THENA Auto)
   THEN InstLemma `alpha-rename-alist-property` [⌜opr⌝;⌜t⌝;⌜L⌝]⋅
   THEN Auto
   THEN InstHyp [⌜x⌝;⌜x1⌝] (-2)⋅
   THEN Auto) }
Latex:
Latex:
1.  opr  :  Type
2.  L  :  varname()  List
3.  \mneg{}(nullvar()  \mmember{}  L)
4.  t  :  term(opr)
5.  x  :  \{v:varname()|  (v  \mmember{}  all-vars(t))\} 
6.  ((alist-map(VarDeq;alpha-rename-alist(t;L))  x)  =  nullvar())  {}\mRightarrow{}  (x  =  nullvar())
7.  x1  :  varname()
8.  apply-alist(VarDeq;alpha-rename-alist(t;L);x)  =  (inl  x1)
\mvdash{}  \mneg{}(x1  \mmember{}  L)
By
Latex:
((FLemma  `apply-alist-inl`  [-1]  THENA  Auto)
  THEN  InstLemma  `alpha-rename-alist-property`  [\mkleeneopen{}opr\mkleeneclose{};\mkleeneopen{}t\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  InstHyp  [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}x1\mkleeneclose{}]  (-2)\mcdot{}
  THEN  Auto)
Home
Index