Step * 2 2 1 1 of Lemma map_is_append


1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ∀[L1,L2:B List].
     (map(f;firstn(||L1||;v)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;v)) L2 ∈ (B List)) 
     supposing map(f;v) (L1 L2) ∈ (B List)
7. u1 B
8. v1 List
9. L2 List
10. [f map(f;v)] [u1 (v1 L2)] ∈ (B List)
11. map(f;firstn(||v1||;v)) v1 ∈ (B List)
12. map(f;nth_tl(||v1||;v)) L2 ∈ (B List)
13. 0 < ||v1|| 1
14. 0 < ||v1|| 1
⊢ map(f;[u firstn((||v1|| 1) 1;v)]) [u1 v1] ∈ (B List)
BY
xxx(Reduce THEN EqCD)xxx }

1
.....implicit subterm..... 
1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ∀[L1,L2:B List].
     (map(f;firstn(||L1||;v)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;v)) L2 ∈ (B List)) 
     supposing map(f;v) (L1 L2) ∈ (B List)
7. u1 B
8. v1 List
9. L2 List
10. [f map(f;v)] [u1 (v1 L2)] ∈ (B List)
11. map(f;firstn(||v1||;v)) v1 ∈ (B List)
12. map(f;nth_tl(||v1||;v)) L2 ∈ (B List)
13. 0 < ||v1|| 1
14. 0 < ||v1|| 1
⊢ B ∈ Type

2
.....subterm..... T:t
1:n
1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ∀[L1,L2:B List].
     (map(f;firstn(||L1||;v)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;v)) L2 ∈ (B List)) 
     supposing map(f;v) (L1 L2) ∈ (B List)
7. u1 B
8. v1 List
9. L2 List
10. [f map(f;v)] [u1 (v1 L2)] ∈ (B List)
11. map(f;firstn(||v1||;v)) v1 ∈ (B List)
12. map(f;nth_tl(||v1||;v)) L2 ∈ (B List)
13. 0 < ||v1|| 1
14. 0 < ||v1|| 1
⊢ (f u) u1 ∈ B

3
.....subterm..... T:t
2:n
1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ∀[L1,L2:B List].
     (map(f;firstn(||L1||;v)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;v)) L2 ∈ (B List)) 
     supposing map(f;v) (L1 L2) ∈ (B List)
7. u1 B
8. v1 List
9. L2 List
10. [f map(f;v)] [u1 (v1 L2)] ∈ (B List)
11. map(f;firstn(||v1||;v)) v1 ∈ (B List)
12. map(f;nth_tl(||v1||;v)) L2 ∈ (B List)
13. 0 < ||v1|| 1
14. 0 < ||v1|| 1
⊢ map(f;firstn((||v1|| 1) 1;v)) v1 ∈ (B List)

4
.....antecedent..... 
1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ∀[L1,L2:B List].
     (map(f;firstn(||L1||;v)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;v)) L2 ∈ (B List)) 
     supposing map(f;v) (L1 L2) ∈ (B List)
7. u1 B
8. v1 List
9. L2 List
10. [f map(f;v)] [u1 (v1 L2)] ∈ (B List)
11. map(f;firstn(||v1||;v)) v1 ∈ (B List)
12. map(f;nth_tl(||v1||;v)) L2 ∈ (B List)
13. 0 < ||v1|| 1
14. 0 < ||v1|| 1
⊢ True


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  f  :  A  {}\mrightarrow{}  B
4.  u  :  A
5.  v  :  A  List
6.  \mforall{}[L1,L2:B  List].
          (map(f;firstn(||L1||;v))  =  L1)  \mwedge{}  (map(f;nth\_tl(||L1||;v))  =  L2)  supposing  map(f;v)  =  (L1  @  L2)
7.  u1  :  B
8.  v1  :  B  List
9.  L2  :  B  List
10.  [f  u  /  map(f;v)]  =  [u1  /  (v1  @  L2)]
11.  map(f;firstn(||v1||;v))  =  v1
12.  map(f;nth\_tl(||v1||;v))  =  L2
13.  0  <  ||v1||  +  1
14.  0  <  ||v1||  +  1
\mvdash{}  map(f;[u  /  firstn((||v1||  +  1)  -  1;v)])  =  [u1  /  v1]


By


Latex:
xxx(Reduce  0  THEN  EqCD)xxx




Home Index