Step
*
2
1
1
of Lemma
bar-induction
.....subterm..... T:t
2:n
1. T : Type
2. R : (T List) ⟶ ℙ
3. A : (T List) ⟶ ℙ
4. ∀s:T List. Dec(R s)
5. ∀s:T List. ((R s) 
⇒ (A s))
6. ∀s:T List. ((∀t:T. (A (s @ [t]))) 
⇒ (A s))
7. s : T List
8. ∀alpha:ℕ ⟶ T. (↓∃n:ℕ. (R (s @ map(alpha;upto(n)))))
9. ∀n:ℕ. ∀s:ℕn ⟶ T.  ((∀alpha:ℕ ⟶ T. (↓∃m:ℕ. (R map(seq-append(n;m;s;alpha);upto(n + m))))) 
⇒ (A map(s;upto(n))))
10. alpha : ℕ ⟶ T
11. n : ℕ
12. R (s @ map(alpha;upto(n)))
⊢ map(seq-append(||s||;n;λi.s[i];alpha);upto(||s|| + n)) = (s @ map(alpha;upto(n))) ∈ (T List)
BY
{ (BLemma `list_extensionality`
   THEN Auto
   THEN RWO "select-map" 0
   THEN Reduce 0
   THEN Auto
   THEN (RWO "length-map" (-1) THENA Auto)
   THEN RWO "length_upto" (-1)
   THEN Auto)⋅ }
1
1. T : Type
2. R : (T List) ⟶ ℙ
3. A : (T List) ⟶ ℙ
4. ∀s:T List. Dec(R s)
5. ∀s:T List. ((R s) 
⇒ (A s))
6. ∀s:T List. ((∀t:T. (A (s @ [t]))) 
⇒ (A s))
7. s : T List
8. ∀alpha:ℕ ⟶ T. (↓∃n:ℕ. (R (s @ map(alpha;upto(n)))))
9. ∀n:ℕ. ∀s:ℕn ⟶ T.  ((∀alpha:ℕ ⟶ T. (↓∃m:ℕ. (R map(seq-append(n;m;s;alpha);upto(n + m))))) 
⇒ (A map(s;upto(n))))
10. alpha : ℕ ⟶ T
11. n : ℕ
12. R (s @ map(alpha;upto(n)))
13. i : ℕ
14. i < ||s|| + n
⊢ (seq-append(||s||;n;λi.s[i];alpha) upto(||s|| + n)[i]) = s @ map(alpha;upto(n))[i] ∈ T
Latex:
Latex:
.....subterm.....  T:t
2:n
1.  T  :  Type
2.  R  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
3.  A  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
4.  \mforall{}s:T  List.  Dec(R  s)
5.  \mforall{}s:T  List.  ((R  s)  {}\mRightarrow{}  (A  s))
6.  \mforall{}s:T  List.  ((\mforall{}t:T.  (A  (s  @  [t])))  {}\mRightarrow{}  (A  s))
7.  s  :  T  List
8.  \mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}n:\mBbbN{}.  (R  (s  @  map(alpha;upto(n)))))
9.  \mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.
          ((\mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}m:\mBbbN{}.  (R  map(seq-append(n;m;s;alpha);upto(n  +  m)))))  {}\mRightarrow{}  (A  map(s;upto(n))))
10.  alpha  :  \mBbbN{}  {}\mrightarrow{}  T
11.  n  :  \mBbbN{}
12.  R  (s  @  map(alpha;upto(n)))
\mvdash{}  map(seq-append(||s||;n;\mlambda{}i.s[i];alpha);upto(||s||  +  n))  =  (s  @  map(alpha;upto(n)))
By
Latex:
(BLemma  `list\_extensionality`
  THEN  Auto
  THEN  RWO  "select-map"  0
  THEN  Reduce  0
  THEN  Auto
  THEN  (RWO  "length-map"  (-1)  THENA  Auto)
  THEN  RWO  "length\_upto"  (-1)
  THEN  Auto)\mcdot{}
Home
Index