Step * 1 1 2 2 1 2 1 of Lemma bag-parts-no-repeats


1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).  ((#(bs) ≤ n)  bag-no-repeats(bag(T) List+;bag-parts(eq;bs)))
6. T
7. List
8. #(u.v) ≤ n
9. bag-no-repeats(bag(T) List+;bag-parts(eq;v))
10. ∀p,y:{p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} . ∀z:bag(T) List+.
      (z ↓∈ 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 
       z ↓∈ if bag-null(fst(y)) then {}
         if bag-null(snd(y)) then {[fst(y)]}
         else let parts ⟵ bag-parts(eq;snd(y))
              in bag-map(λL.[fst(y) L];parts)
         fi 
       (p y ∈ {p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} ))
11. p1 bag(T)
12. ¬(p1 {} ∈ bag(T))
13. p2 bag(T)
14. ¬(p2 {} ∈ bag(T))
15. [%27] : <p1, p2> ↓∈ bag-partitions(eq;u.v)
⊢ bag-no-repeats(bag(T) List+;bag-map(λL.[p1 L];bag-parts(eq;p2)))
BY
(BLemma `bag-map-no-repeats` THEN Auto) }

1
1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).  ((#(bs) ≤ n)  bag-no-repeats(bag(T) List+;bag-parts(eq;bs)))
6. T
7. List
8. #(u.v) ≤ n
9. bag-no-repeats(bag(T) List+;bag-parts(eq;v))
10. ∀p,y:{p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} . ∀z:bag(T) List+.
      (z ↓∈ 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 
       z ↓∈ if bag-null(fst(y)) then {}
         if bag-null(snd(y)) then {[fst(y)]}
         else let parts ⟵ bag-parts(eq;snd(y))
              in bag-map(λL.[fst(y) L];parts)
         fi 
       (p y ∈ {p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} ))
11. p1 bag(T)
12. ¬(p1 {} ∈ bag(T))
13. p2 bag(T)
14. ¬(p2 {} ∈ bag(T))
15. <p1, p2> ↓∈ bag-partitions(eq;u.v)
⊢ Inj(bag(T) List+;bag(T) List+L.[p1 L])

2
1. Type
2. valueall-type(T)
3. eq EqDecider(T)
4. : ℕ
5. ∀n:ℕn. ∀bs:bag(T).  ((#(bs) ≤ n)  bag-no-repeats(bag(T) List+;bag-parts(eq;bs)))
6. T
7. List
8. #(u.v) ≤ n
9. bag-no-repeats(bag(T) List+;bag-parts(eq;v))
10. ∀p,y:{p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} . ∀z:bag(T) List+.
      (z ↓∈ 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 
       z ↓∈ if bag-null(fst(y)) then {}
         if bag-null(snd(y)) then {[fst(y)]}
         else let parts ⟵ bag-parts(eq;snd(y))
              in bag-map(λL.[fst(y) L];parts)
         fi 
       (p y ∈ {p:bag(T) × bag(T)| p ↓∈ bag-partitions(eq;u.v)} ))
11. p1 bag(T)
12. ¬(p1 {} ∈ bag(T))
13. p2 bag(T)
14. ¬(p2 {} ∈ bag(T))
15. <p1, p2> ↓∈ bag-partitions(eq;u.v)
⊢ bag-no-repeats(bag(T) List+;bag-parts(eq;p2))


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{}  bag-no-repeats(bag(T)  List\msupplus{};bag-parts(eq;bs)))
6.  u  :  T
7.  v  :  T  List
8.  \#(u.v)  \mleq{}  n
9.  bag-no-repeats(bag(T)  List\msupplus{};bag-parts(eq;v))
10.  \mforall{}p,y:\{p:bag(T)  \mtimes{}  bag(T)|  p  \mdownarrow{}\mmember{}  bag-partitions(eq;u.v)\}  .  \mforall{}z:bag(T)  List\msupplus{}.
            (z  \mdownarrow{}\mmember{}  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 
            {}\mRightarrow{}  z  \mdownarrow{}\mmember{}  if  bag-null(fst(y))  then  \{\}
                  if  bag-null(snd(y))  then  \{[fst(y)]\}
                  else  let  parts  \mleftarrow{}{}  bag-parts(eq;snd(y))
                            in  bag-map(\mlambda{}L.[fst(y)  /  L];parts)
                  fi 
            {}\mRightarrow{}  (p  =  y))
11.  p1  :  bag(T)
12.  \mneg{}(p1  =  \{\})
13.  p2  :  bag(T)
14.  \mneg{}(p2  =  \{\})
15.  [\%27]  :  <p1,  p2>  \mdownarrow{}\mmember{}  bag-partitions(eq;u.v)
\mvdash{}  bag-no-repeats(bag(T)  List\msupplus{};bag-map(\mlambda{}L.[p1  /  L];bag-parts(eq;p2)))


By


Latex:
(BLemma  `bag-map-no-repeats`  THEN  Auto)




Home Index