Step * 1 of Lemma append_functionality_wrt_permutation


1. [A] Type
2. as1 List@i
3. as2 List@i
4. bs1 List@i
5. bs2 List@i
6. f1 : ℕ||as1|| ⟶ ℕ||as1||@i
7. Inj(ℕ||as1||;ℕ||as1||;f1)
8. bs1 (as1 f1) ∈ (A List)
9. : ℕ||as2|| ⟶ ℕ||as2||@i
10. Inj(ℕ||as2||;ℕ||as2||;f)
11. bs2 (as2 f) ∈ (A List)
12. ||as1|| ||bs1|| ∈ ℤ
13. ||as2|| ||bs2|| ∈ ℤ
⊢ ∃f:ℕ||as1 as2|| ⟶ ℕ||as1 as2||
   (Inj(ℕ||as1 as2||;ℕ||as1 as2||;f) ∧ ((bs1 bs2) (as1 as2 f) ∈ (A List)))
BY
TACTIC:((RWO "length-append" THENA Auto)
          THEN Assert ⌜λi.if i <||as1|| then f1 else ||as1|| (f (i ||as1||)) fi  ∈ ℕ||as1|| ||as2||
                       ⟶ ℕ||as1|| ||as2||⌝⋅
          }

1
.....assertion..... 
1. [A] Type
2. as1 List@i
3. as2 List@i
4. bs1 List@i
5. bs2 List@i
6. f1 : ℕ||as1|| ⟶ ℕ||as1||@i
7. Inj(ℕ||as1||;ℕ||as1||;f1)
8. bs1 (as1 f1) ∈ (A List)
9. : ℕ||as2|| ⟶ ℕ||as2||@i
10. Inj(ℕ||as2||;ℕ||as2||;f)
11. bs2 (as2 f) ∈ (A List)
12. ||as1|| ||bs1|| ∈ ℤ
13. ||as2|| ||bs2|| ∈ ℤ
⊢ λi.if i <||as1|| then f1 else ||as1|| (f (i ||as1||)) fi  ∈ ℕ||as1|| ||as2|| ⟶ ℕ||as1|| ||as2||

2
1. [A] Type
2. as1 List@i
3. as2 List@i
4. bs1 List@i
5. bs2 List@i
6. f1 : ℕ||as1|| ⟶ ℕ||as1||@i
7. Inj(ℕ||as1||;ℕ||as1||;f1)
8. bs1 (as1 f1) ∈ (A List)
9. : ℕ||as2|| ⟶ ℕ||as2||@i
10. Inj(ℕ||as2||;ℕ||as2||;f)
11. bs2 (as2 f) ∈ (A List)
12. ||as1|| ||bs1|| ∈ ℤ
13. ||as2|| ||bs2|| ∈ ℤ
14. λi.if i <||as1|| then f1 else ||as1|| (f (i ||as1||)) fi  ∈ ℕ||as1|| ||as2|| ⟶ ℕ||as1|| ||as2||
⊢ ∃f:ℕ||as1|| ||as2|| ⟶ ℕ||as1|| ||as2||
   (Inj(ℕ||as1|| ||as2||;ℕ||as1|| ||as2||;f) ∧ ((bs1 bs2) (as1 as2 f) ∈ (A List)))


Latex:


Latex:

1.  [A]  :  Type
2.  as1  :  A  List@i
3.  as2  :  A  List@i
4.  bs1  :  A  List@i
5.  bs2  :  A  List@i
6.  f1  :  \mBbbN{}||as1||  {}\mrightarrow{}  \mBbbN{}||as1||@i
7.  Inj(\mBbbN{}||as1||;\mBbbN{}||as1||;f1)
8.  bs1  =  (as1  o  f1)
9.  f  :  \mBbbN{}||as2||  {}\mrightarrow{}  \mBbbN{}||as2||@i
10.  Inj(\mBbbN{}||as2||;\mBbbN{}||as2||;f)
11.  bs2  =  (as2  o  f)
12.  ||as1||  =  ||bs1||
13.  ||as2||  =  ||bs2||
\mvdash{}  \mexists{}f:\mBbbN{}||as1  @  as2||  {}\mrightarrow{}  \mBbbN{}||as1  @  as2||
      (Inj(\mBbbN{}||as1  @  as2||;\mBbbN{}||as1  @  as2||;f)  \mwedge{}  ((bs1  @  bs2)  =  (as1  @  as2  o  f)))


By


Latex:
TACTIC:((RWO  "length-append"  0  THENA  Auto)
                THEN  Assert  \mkleeneopen{}\mlambda{}i.if  i  <z  ||as1||  then  f1  i  else  ||as1||  +  (f  (i  -  ||as1||))  fi    \mmember{}  \mBbbN{}||as1||
                                          +  ||as2||  {}\mrightarrow{}  \mBbbN{}||as1||  +  ||as2||\mkleeneclose{}\mcdot{}
                )




Home Index