Step * 1 of Lemma lsum-append


1. Type
2. L1 List
3. L2 List
4. {x:T| (x ∈ L1 L2)}  ⟶ ℤ
⊢ l_sum(map(λx.f[x];L1) map(λx.f[x];L2)) (l_sum(map(λx.f[x];L1)) l_sum(map(λx.f[x];L2))) ∈ ℤ
BY
((Assert L1 ∈ {x:T| (x ∈ L1 L2)}  List BY
          (SubsumeC ⌜{x:T| (x ∈ L1)}  List⌝⋅ THEN Auto))
   THEN (Assert L2 ∈ {x:T| (x ∈ L1 L2)}  List BY
               (SubsumeC ⌜{x:T| (x ∈ L2)}  List⌝⋅ THEN Auto))
   }

1
1. Type
2. L1 List
3. L2 List
4. {x:T| (x ∈ L1 L2)}  ⟶ ℤ
5. L1 ∈ {x:T| (x ∈ L1 L2)}  List
6. L2 ∈ {x:T| (x ∈ L1 L2)}  List
⊢ l_sum(map(λx.f[x];L1) map(λx.f[x];L2)) (l_sum(map(λx.f[x];L1)) l_sum(map(λx.f[x];L2))) ∈ ℤ


Latex:


Latex:

1.  T  :  Type
2.  L1  :  T  List
3.  L2  :  T  List
4.  f  :  \{x:T|  (x  \mmember{}  L1  @  L2)\}    {}\mrightarrow{}  \mBbbZ{}
\mvdash{}  l\_sum(map(\mlambda{}x.f[x];L1)  @  map(\mlambda{}x.f[x];L2))  =  (l\_sum(map(\mlambda{}x.f[x];L1))  +  l\_sum(map(\mlambda{}x.f[x];L2)))


By


Latex:
((Assert  L1  \mmember{}  \{x:T|  (x  \mmember{}  L1  @  L2)\}    List  BY
                (SubsumeC  \mkleeneopen{}\{x:T|  (x  \mmember{}  L1)\}    List\mkleeneclose{}\mcdot{}  THEN  Auto))
  THEN  (Assert  L2  \mmember{}  \{x:T|  (x  \mmember{}  L1  @  L2)\}    List  BY
                          (SubsumeC  \mkleeneopen{}\{x:T|  (x  \mmember{}  L2)\}    List\mkleeneclose{}\mcdot{}  THEN  Auto))
  )




Home Index