Step * 1 1 of Lemma bag-member-parts


1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
      (∀L:bag(T) List+uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) bs ∈ bag(T)) ∧ (∀x∈L.¬(x {} ∈ bag(T))))))
6. bs bag(T)
7. #(bs) ≤ n
8. bag(T) List+
⊢ uiff(L ↓∈ ⋃p∈bag-partitions(eq;bs).if bag-null(fst(p)) then {}
            if bag-null(snd(p)) then {[fst(p)]}
            else let parts ⟵ bag-parts(eq;snd(p))
                 in bag-map(λL.[fst(p) L];parts)
            fi ;(bag-union(L) bs ∈ bag(T)) ∧ (∀x∈L.¬(x {} ∈ bag(T))))
BY
((RWW "bag-member-combine exists-pair" THENM (Reduce THEN RepeatFor (D 0))) THEN Auto THEN SquashExRepD) }

1
1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
      (∀L:bag(T) List+uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) bs ∈ bag(T)) ∧ (∀x∈L.¬(x {} ∈ bag(T))))))
6. bs bag(T)
7. #(bs) ≤ n
8. bag(T) List+
9. bag(T)
10. bag(T)
11. <a, b> ↓∈ bag-partitions(eq;bs)
12. L ↓∈ if bag-null(a) then {}
if bag-null(b) then {[a]}
else let parts ⟵ bag-parts(eq;b)
     in bag-map(λL.[a L];parts)
fi 
⊢ bag-union(L) bs ∈ bag(T)

2
1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
      (∀L:bag(T) List+uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) bs ∈ bag(T)) ∧ (∀x∈L.¬(x {} ∈ bag(T))))))
6. bs bag(T)
7. #(bs) ≤ n
8. bag(T) List+
9. ↓∃a,b:bag(T)
     (<a, b> ↓∈ bag-partitions(eq;bs)
     ∧ L ↓∈ if bag-null(a) then {}
       if bag-null(b) then {[a]}
       else let parts ⟵ bag-parts(eq;b)
            in bag-map(λL.[a L];parts)
       fi )
10. bag-union(L) bs ∈ bag(T)
⊢ (∀x∈L.¬(x {} ∈ bag(T)))

3
1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
      (∀L:bag(T) List+uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) bs ∈ bag(T)) ∧ (∀x∈L.¬(x {} ∈ bag(T))))))
6. bs bag(T)
7. #(bs) ≤ n
8. bag(T) List+
9. bag-union(L) bs ∈ bag(T)
10. (∀x∈L.¬(x {} ∈ bag(T)))
⊢ ↓∃a,b:bag(T)
    (<a, b> ↓∈ bag-partitions(eq;bs)
    ∧ L ↓∈ if bag-null(a) then {}
      if bag-null(b) then {[a]}
      else let parts ⟵ bag-parts(eq;b)
           in bag-map(λL.[a L];parts)
      fi )


Latex:


Latex:

1.  T  :  Type
2.  valueall-type(T)
3.  eq  :  EqDecider(T)
4.  n  :  \mBbbN{}
5.  \mforall{}n:\mBbbN{}n.  \mforall{}bs:bag(T).
          ((\#(bs)  \mleq{}  n)
          {}\mRightarrow{}  (\mforall{}L:bag(T)  List\msupplus{}.  uiff(L  \mdownarrow{}\mmember{}  bag-parts(eq;bs);(bag-union(L)  =  bs)  \mwedge{}  (\mforall{}x\mmember{}L.\mneg{}(x  =  \{\})))))
6.  bs  :  bag(T)
7.  \#(bs)  \mleq{}  n
8.  L  :  bag(T)  List\msupplus{}
\mvdash{}  uiff(L  \mdownarrow{}\mmember{}  \mcup{}p\mmember{}bag-partitions(eq;bs).if  bag-null(fst(p))  then  \{\}
                        if  bag-null(snd(p))  then  \{[fst(p)]\}
                        else  let  parts  \mleftarrow{}{}  bag-parts(eq;snd(p))
                                  in  bag-map(\mlambda{}L.[fst(p)  /  L];parts)
                        fi  ;(bag-union(L)  =  bs)  \mwedge{}  (\mforall{}x\mmember{}L.\mneg{}(x  =  \{\})))


By


Latex:
((RWW  "bag-member-combine  exists-pair"  0  THENM  (Reduce  0  THEN  RepeatFor  2  (D  0)))
  THEN  Auto
  THEN  SquashExRepD)




Home Index