Step * of Lemma map_is_append

[A,B:Type]. ∀[f:A ⟶ B]. ∀[L:A List]. ∀[L1,L2:B List].
  {(map(f;firstn(||L1||;L)) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;L)) L2 ∈ (B List))} 
  supposing map(f;L) (L1 L2) ∈ (B List)
BY
xxx(Unfold `guard` THEN InductionOnList)xxx }

1
1. Type
2. Type
3. A ⟶ B
⊢ ∀[L1,L2:B List].
    (map(f;firstn(||L1||;[])) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;[])) L2 ∈ (B List)) 
    supposing map(f;[]) (L1 L2) ∈ (B List)

2
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)
⊢ ∀[L1,L2:B List].
    (map(f;firstn(||L1||;[u v])) L1 ∈ (B List)) ∧ (map(f;nth_tl(||L1||;[u v])) L2 ∈ (B List)) 
    supposing map(f;[u v]) (L1 L2) ∈ (B List)


Latex:


Latex:
\mforall{}[A,B:Type].  \mforall{}[f:A  {}\mrightarrow{}  B].  \mforall{}[L:A  List].  \mforall{}[L1,L2:B  List].
    \{(map(f;firstn(||L1||;L))  =  L1)  \mwedge{}  (map(f;nth\_tl(||L1||;L))  =  L2)\}  supposing  map(f;L)  =  (L1  @  L2)


By


Latex:
xxx(Unfold  `guard`  0  THEN  InductionOnList)xxx




Home Index