Step
*
2
2
1
1
of Lemma
map_is_append
1. A : Type
2. B : Type
3. f : A ⟶ B
4. u : A
5. v : A 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 : B List
9. L2 : B List
10. [f u / 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 0 THEN EqCD)xxx }
1
.....implicit subterm.....
1. A : Type
2. B : Type
3. f : A ⟶ B
4. u : A
5. v : A 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 : B List
9. L2 : B List
10. [f u / 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 = B ∈ Type
2
.....subterm..... T:t
1:n
1. A : Type
2. B : Type
3. f : A ⟶ B
4. u : A
5. v : A 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 : B List
9. L2 : B List
10. [f u / 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. A : Type
2. B : Type
3. f : A ⟶ B
4. u : A
5. v : A 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 : B List
9. L2 : B List
10. [f u / 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. A : Type
2. B : Type
3. f : A ⟶ B
4. u : A
5. v : A 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 : B List
9. L2 : B List
10. [f u / 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