Step
*
1
1
1
1
of Lemma
subst-term_functionality
1. [opr] : Type
2. s1 : (varname() × term(opr)) List
3. s2 : (varname() × term(opr)) List
4. equiv-substs(opr;s1;s2)
5. v : {v:varname()| ¬(v = nullvar() ∈ varname())} 
6. varterm(v) ∈ term(opr)
7. v1 : {v:varname()| ¬(v = nullvar() ∈ varname())} 
8. bnds1 : varname() List
9. bnds2 : varname() List
10. ||bnds1|| = ||bnds2|| ∈ ℤ
11. l_disjoint(varname();bnds1;vars-of-subst(s1))
12. l_disjoint(varname();bnds2;vars-of-subst(s2))
13. ↑same-binding(bnds1;bnds2;v;v1)
14. x : term(opr)
15. apply-alist(VarDeq;s1;v) = (inl x) ∈ (term(opr)?)
16. (v ∈ vars-of-subst(s1))
17. ¬(v ∈ bnds1)
18. ¬(v1 ∈ bnds2)
19. v1 = v ∈ varname()
⊢ alpha-aux(opr;bnds1;bnds2;x;case apply-alist(VarDeq;s2;v1) of inl(a) => a | inr(_) => varterm(v1))
BY
{ ((RWO "-1" 0 THENA Auto)
   THEN (D 4 With ⌜v⌝  THENA Auto)
   THEN (D -1 THEN Auto)
   THEN (D -1 THENA Auto)
   THEN ((RWO  "-7" (-1) THENA Auto) THEN (RWO  "-7" (-2) THENA Auto))
   THEN Reduce -1
   THEN Reduce -2
   THEN RepeatFor 2 (MoveToConcl (-1))
   THEN (GenConclTerm ⌜apply-alist(VarDeq;s2;v)⌝⋅ THENA Auto)
   THEN D -2
   THEN Reduce 0
   THEN Auto) }
1
1. [opr] : Type
2. s1 : (varname() × term(opr)) List
3. s2 : (varname() × term(opr)) List
4. v : {v:varname()| ¬(v = nullvar() ∈ varname())} 
5. varterm(v) ∈ term(opr)
6. v1 : {v:varname()| ¬(v = nullvar() ∈ varname())} 
7. bnds1 : varname() List
8. bnds2 : varname() List
9. ||bnds1|| = ||bnds2|| ∈ ℤ
10. l_disjoint(varname();bnds1;vars-of-subst(s1))
11. l_disjoint(varname();bnds2;vars-of-subst(s2))
12. ↑same-binding(bnds1;bnds2;v;v1)
13. x : term(opr)
14. apply-alist(VarDeq;s1;v) = (inl x) ∈ (term(opr)?)
15. (v ∈ vars-of-subst(s1))
16. ¬(v ∈ bnds1)
17. ¬(v1 ∈ bnds2)
18. v1 = v ∈ varname()
19. x1 : term(opr)
20. apply-alist(VarDeq;s2;v) = (inl x1) ∈ (term(opr)?)
21. tt = tt
22. alpha-eq-terms(opr;x;x1)
⊢ alpha-aux(opr;bnds1;bnds2;x;x1)
Latex:
Latex:
1.  [opr]  :  Type
2.  s1  :  (varname()  \mtimes{}  term(opr))  List
3.  s2  :  (varname()  \mtimes{}  term(opr))  List
4.  equiv-substs(opr;s1;s2)
5.  v  :  \{v:varname()|  \mneg{}(v  =  nullvar())\} 
6.  varterm(v)  \mmember{}  term(opr)
7.  v1  :  \{v:varname()|  \mneg{}(v  =  nullvar())\} 
8.  bnds1  :  varname()  List
9.  bnds2  :  varname()  List
10.  ||bnds1||  =  ||bnds2||
11.  l\_disjoint(varname();bnds1;vars-of-subst(s1))
12.  l\_disjoint(varname();bnds2;vars-of-subst(s2))
13.  \muparrow{}same-binding(bnds1;bnds2;v;v1)
14.  x  :  term(opr)
15.  apply-alist(VarDeq;s1;v)  =  (inl  x)
16.  (v  \mmember{}  vars-of-subst(s1))
17.  \mneg{}(v  \mmember{}  bnds1)
18.  \mneg{}(v1  \mmember{}  bnds2)
19.  v1  =  v
\mvdash{}  alpha-aux(opr;bnds1;bnds2;x;case  apply-alist(VarDeq;s2;v1)  of  inl(a)  =>  a  |  inr($_{\mbackslash{}ff\000C7d$)  =>  varterm(v1))
By
Latex:
((RWO  "-1"  0  THENA  Auto)
  THEN  (D  4  With  \mkleeneopen{}v\mkleeneclose{}    THENA  Auto)
  THEN  (D  -1  THEN  Auto)
  THEN  (D  -1  THENA  Auto)
  THEN  ((RWO    "-7"  (-1)  THENA  Auto)  THEN  (RWO    "-7"  (-2)  THENA  Auto))
  THEN  Reduce  -1
  THEN  Reduce  -2
  THEN  RepeatFor  2  (MoveToConcl  (-1))
  THEN  (GenConclTerm  \mkleeneopen{}apply-alist(VarDeq;s2;v)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  Reduce  0
  THEN  Auto)
Home
Index