Step
*
1
1
2
of Lemma
bag-splits-permutation
1. T : Type
2. ∀b:T List. (bag-splits(b) ∈ (bag(T) × bag(T)) List)
3. L1 : T List
4. L2 : T List
5. permutation(T;L1;L2)
6. a : T
7. u : T
8. v : T List
9. permutation(bag(T) × bag(T);bag-splits([a / v]);bag-splits(v @ [a]))
⊢ permutation(bag(T) × bag(T);bag-splits([a; [u / v]]);bag-splits([u / v] @ [a]))
BY
{ (Reduce 0 THEN Assert ⌜Trans((bag(T) × bag(T)) List;L1,L2.permutation(bag(T) × bag(T);L1;L2))⌝⋅) }
1
.....assertion..... 
1. T : Type
2. ∀b:T List. (bag-splits(b) ∈ (bag(T) × bag(T)) List)
3. L1 : T List
4. L2 : T List
5. permutation(T;L1;L2)
6. a : T
7. u : T
8. v : T List
9. permutation(bag(T) × bag(T);bag-splits([a / v]);bag-splits(v @ [a]))
⊢ Trans((bag(T) × bag(T)) List;L1,L2.permutation(bag(T) × bag(T);L1;L2))
2
1. T : Type
2. ∀b:T List. (bag-splits(b) ∈ (bag(T) × bag(T)) List)
3. L1 : T List
4. L2 : T List
5. permutation(T;L1;L2)
6. a : T
7. u : T
8. v : T List
9. permutation(bag(T) × bag(T);bag-splits([a / v]);bag-splits(v @ [a]))
10. Trans((bag(T) × bag(T)) List;L1,L2.permutation(bag(T) × bag(T);L1;L2))
⊢ permutation(bag(T) × bag(T);bag-splits([a; [u / v]]);bag-splits([u / (v @ [a])]))
Latex:
Latex:
1.  T  :  Type
2.  \mforall{}b:T  List.  (bag-splits(b)  \mmember{}  (bag(T)  \mtimes{}  bag(T))  List)
3.  L1  :  T  List
4.  L2  :  T  List
5.  permutation(T;L1;L2)
6.  a  :  T
7.  u  :  T
8.  v  :  T  List
9.  permutation(bag(T)  \mtimes{}  bag(T);bag-splits([a  /  v]);bag-splits(v  @  [a]))
\mvdash{}  permutation(bag(T)  \mtimes{}  bag(T);bag-splits([a;  [u  /  v]]);bag-splits([u  /  v]  @  [a]))
By
Latex:
(Reduce  0  THEN  Assert  \mkleeneopen{}Trans((bag(T)  \mtimes{}  bag(T))  List;L1,L2.permutation(bag(T)  \mtimes{}  bag(T);L1;L2))\mkleeneclose{}\mcdot{})
Home
Index