Step * of Lemma cons_interleaving

[T:Type]. ∀x:T. ∀L,L1,L2:T List.  (interleaving(T;L1;L2;L)  interleaving(T;[x L1];L2;[x L]))
BY
((Auto
    THEN (All (Unfold `interleaving`))
    THEN Reduce 0
    THEN Auto'
    THEN (All (Unfold `disjoint_sublists`))
    THEN ExRepD
    THEN Reduce 0
    THEN AssertBY fadd(f2;λi.1) ∈ ℕ||L2|| ⟶ ℕ||L|| Auto'⋅
    THEN AssertBY fshift(fadd(f1;λi.1);0) ∈ ℕ||L1|| 1 ⟶ ℕ||L|| Auto'⋅
    THEN InstConcl [fshift(fadd(f1;λi.1);0);fadd(f2;λi.1)]⋅)
   THENA Try (Complete (Auto))
   }

1
1. [T] Type
2. T
3. List
4. L1 List
5. L2 List
6. ||L|| (||L1|| ||L2||) ∈ ℕ
7. f1 : ℕ||L1|| ⟶ ℕ||L||
8. f2 : ℕ||L2|| ⟶ ℕ||L||
9. increasing(f1;||L1||)
10. ∀j:ℕ||L1||. (L1[j] L[f1 j] ∈ T)
11. increasing(f2;||L2||)
12. ∀j:ℕ||L2||. (L2[j] L[f2 j] ∈ T)
13. ∀j1:ℕ||L1||. ∀j2:ℕ||L2||.  ((f1 j1) (f2 j2) ∈ ℤ))
14. (||L|| 1) ((||L1|| 1) ||L2||) ∈ ℕ
15. fadd(f2;λi.1) ∈ ℕ||L2|| ⟶ ℕ||L|| 1
16. fshift(fadd(f1;λi.1);0) ∈ ℕ||L1|| 1 ⟶ ℕ||L|| 1
⊢ (increasing(fshift(fadd(f1;λi.1);0);||L1|| 1)
  ∧ (∀j:ℕ||L1|| 1. ([x L1][j] [x L][fshift(fadd(f1;λi.1);0) j] ∈ T)))
∧ (increasing(fadd(f2;λi.1);||L2||) ∧ (∀j:ℕ||L2||. (L2[j] [x L][fadd(f2;λi.1) j] ∈ T)))
∧ (∀j1:ℕ||L1|| 1. ∀j2:ℕ||L2||.  ((fshift(fadd(f1;λi.1);0) j1) (fadd(f2;λi.1) j2) ∈ ℤ)))


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}x:T.  \mforall{}L,L1,L2:T  List.    (interleaving(T;L1;L2;L)  {}\mRightarrow{}  interleaving(T;[x  /  L1];L2;[x  /  L]))


By


Latex:
((Auto
    THEN  (All  (Unfold  `interleaving`))
    THEN  Reduce  0
    THEN  Auto'
    THEN  (All  (Unfold  `disjoint\_sublists`))
    THEN  ExRepD
    THEN  Reduce  0
    THEN  AssertBY  fadd(f2;\mlambda{}i.1)  \mmember{}  \mBbbN{}||L2||  {}\mrightarrow{}  \mBbbN{}||L||  +  1  Auto'\mcdot{}
    THEN  AssertBY  fshift(fadd(f1;\mlambda{}i.1);0)  \mmember{}  \mBbbN{}||L1||  +  1  {}\mrightarrow{}  \mBbbN{}||L||  +  1  Auto'\mcdot{}
    THEN  InstConcl  [fshift(fadd(f1;\mlambda{}i.1);0);fadd(f2;\mlambda{}i.1)]\mcdot{})
  THENA  Try  (Complete  (Auto))
  )




Home Index