Step
*
1
2
of Lemma
interleaving_occurence_onto
.....antecedent..... 
1. [A] : Type
2. L : A List
3. L1 : A List
4. L2 : A List
5. f1 : ℕ||L1|| ⟶ ℕ||L||
6. f2 : ℕ||L2|| ⟶ ℕ||L||
7. ||L|| = (||L1|| + ||L2||) ∈ ℕ
8. increasing(f1;||L1||)
9. ∀j:ℕ||L1||. (L1[j] = L[f1 j] ∈ A)
10. increasing(f2;||L2||)
11. ∀j:ℕ||L2||. (L2[j] = L[f2 j] ∈ A)
12. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  (¬((f1 j1) = (f2 j2) ∈ ℤ))
13. j : ℕ||L||
14. ∀f:ℕ||L1|| + ||L2|| ⟶ ℕ||L1|| + ||L2||
      (Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f) 
⇒ Surj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f))
⊢ Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;λx.if x <z ||L1|| then f1 x else f2 (x - ||L1||) fi )
BY
{ ((((Unfold `inject` 0 THEN Reduce 0) THEN RepeatFor 2 (D  0 THENA Auto{1,3}-1))
    THEN Repeat (SplitOnConclITE THENA Auto{1,1000}-1)
    )
   THEN Auto'
   ) }
1
1. A : Type
2. L : A List
3. L1 : A List
4. L2 : A List
5. f1 : ℕ||L1|| ⟶ ℕ||L||
6. f2 : ℕ||L2|| ⟶ ℕ||L||
7. ||L|| = (||L1|| + ||L2||) ∈ ℕ
8. increasing(f1;||L1||)
9. ∀j:ℕ||L1||. (L1[j] = L[f1 j] ∈ A)
10. increasing(f2;||L2||)
11. ∀j:ℕ||L2||. (L2[j] = L[f2 j] ∈ A)
12. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  (¬((f1 j1) = (f2 j2) ∈ ℤ))
13. j : ℕ||L||
14. ∀f:ℕ||L1|| + ||L2|| ⟶ ℕ||L1|| + ||L2||
      (Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f) 
⇒ Surj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f))
15. a1 : ℕ||L1|| + ||L2||
16. a2 : ℕ||L1|| + ||L2||
17. a1 < ||L1||
18. a2 < ||L1||
19. (f1 a1) = (f1 a2) ∈ ℕ||L1|| + ||L2||
⊢ a1 = a2 ∈ ℕ||L1|| + ||L2||
2
1. A : Type
2. L : A List
3. L1 : A List
4. L2 : A List
5. f1 : ℕ||L1|| ⟶ ℕ||L||
6. f2 : ℕ||L2|| ⟶ ℕ||L||
7. ||L|| = (||L1|| + ||L2||) ∈ ℕ
8. increasing(f1;||L1||)
9. ∀j:ℕ||L1||. (L1[j] = L[f1 j] ∈ A)
10. increasing(f2;||L2||)
11. ∀j:ℕ||L2||. (L2[j] = L[f2 j] ∈ A)
12. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  (¬((f1 j1) = (f2 j2) ∈ ℤ))
13. j : ℕ||L||
14. ∀f:ℕ||L1|| + ||L2|| ⟶ ℕ||L1|| + ||L2||
      (Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f) 
⇒ Surj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f))
15. a1 : ℕ||L1|| + ||L2||
16. a2 : ℕ||L1|| + ||L2||
17. a1 < ||L1||
18. ||L1|| ≤ a2
19. (f1 a1) = (f2 (a2 - ||L1||)) ∈ ℕ||L1|| + ||L2||
⊢ a1 = a2 ∈ ℕ||L1|| + ||L2||
3
1. A : Type
2. L : A List
3. L1 : A List
4. L2 : A List
5. f1 : ℕ||L1|| ⟶ ℕ||L||
6. f2 : ℕ||L2|| ⟶ ℕ||L||
7. ||L|| = (||L1|| + ||L2||) ∈ ℕ
8. increasing(f1;||L1||)
9. ∀j:ℕ||L1||. (L1[j] = L[f1 j] ∈ A)
10. increasing(f2;||L2||)
11. ∀j:ℕ||L2||. (L2[j] = L[f2 j] ∈ A)
12. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  (¬((f1 j1) = (f2 j2) ∈ ℤ))
13. j : ℕ||L||
14. ∀f:ℕ||L1|| + ||L2|| ⟶ ℕ||L1|| + ||L2||
      (Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f) 
⇒ Surj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f))
15. a1 : ℕ||L1|| + ||L2||
16. a2 : ℕ||L1|| + ||L2||
17. ||L1|| ≤ a1
18. a2 < ||L1||
19. (f2 (a1 - ||L1||)) = (f1 a2) ∈ ℕ||L1|| + ||L2||
⊢ a1 = a2 ∈ ℕ||L1|| + ||L2||
4
1. A : Type
2. L : A List
3. L1 : A List
4. L2 : A List
5. f1 : ℕ||L1|| ⟶ ℕ||L||
6. f2 : ℕ||L2|| ⟶ ℕ||L||
7. ||L|| = (||L1|| + ||L2||) ∈ ℕ
8. increasing(f1;||L1||)
9. ∀j:ℕ||L1||. (L1[j] = L[f1 j] ∈ A)
10. increasing(f2;||L2||)
11. ∀j:ℕ||L2||. (L2[j] = L[f2 j] ∈ A)
12. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  (¬((f1 j1) = (f2 j2) ∈ ℤ))
13. j : ℕ||L||
14. ∀f:ℕ||L1|| + ||L2|| ⟶ ℕ||L1|| + ||L2||
      (Inj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f) 
⇒ Surj(ℕ||L1|| + ||L2||;ℕ||L1|| + ||L2||;f))
15. a1 : ℕ||L1|| + ||L2||
16. a2 : ℕ||L1|| + ||L2||
17. ||L1|| ≤ a1
18. ||L1|| ≤ a2
19. (f2 (a1 - ||L1||)) = (f2 (a2 - ||L1||)) ∈ ℕ||L1|| + ||L2||
⊢ a1 = a2 ∈ ℕ||L1|| + ||L2||
Latex:
Latex:
.....antecedent..... 
1.  [A]  :  Type
2.  L  :  A  List
3.  L1  :  A  List
4.  L2  :  A  List
5.  f1  :  \mBbbN{}||L1||  {}\mrightarrow{}  \mBbbN{}||L||
6.  f2  :  \mBbbN{}||L2||  {}\mrightarrow{}  \mBbbN{}||L||
7.  ||L||  =  (||L1||  +  ||L2||)
8.  increasing(f1;||L1||)
9.  \mforall{}j:\mBbbN{}||L1||.  (L1[j]  =  L[f1  j])
10.  increasing(f2;||L2||)
11.  \mforall{}j:\mBbbN{}||L2||.  (L2[j]  =  L[f2  j])
12.  \mforall{}j1:\mBbbN{}||L1||.  \mforall{}j2:\mBbbN{}||L2||.    (\mneg{}((f1  j1)  =  (f2  j2)))
13.  j  :  \mBbbN{}||L||
14.  \mforall{}f:\mBbbN{}||L1||  +  ||L2||  {}\mrightarrow{}  \mBbbN{}||L1||  +  ||L2||
            (Inj(\mBbbN{}||L1||  +  ||L2||;\mBbbN{}||L1||  +  ||L2||;f)  {}\mRightarrow{}  Surj(\mBbbN{}||L1||  +  ||L2||;\mBbbN{}||L1||  +  ||L2||;f))
\mvdash{}  Inj(\mBbbN{}||L1||  +  ||L2||;\mBbbN{}||L1||  +  ||L2||;\mlambda{}x.if  x  <z  ||L1||  then  f1  x  else  f2  (x  -  ||L1||)  fi  )
By
Latex:
((((Unfold  `inject`  0  THEN  Reduce  0)  THEN  RepeatFor  2  (D    0  THENA  Auto\{1,3\}-1))
    THEN  Repeat  (SplitOnConclITE  THENA  Auto\{1,1000\}-1)
    )
  THEN  Auto'
  )
Home
Index